DropDown menü ... selectedIndex problem

2 views
Skip to first unread message

strecker...@googlemail.com

unread,
Mar 7, 2009, 10:50:40 AM3/7/09
to Flex UG Rhein-Main
Hi @ all,
habe folgendes Problem, ich erzeuge eine dropdown Liste und möchte aus
dieser eine spezielle vorauswahl treffen.
Das problem ist, es wird leider nicht die richtige selektion
getroffen. Hat jemand eine Idee was falsch ist?

Die Werte die in den Variablen sind habe ich überprüft, diese Stimmen
mit den übergabewerte überein.

Gruss Michael

Der Code:
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.collections.ArrayCollection;

[Bindable]
public var initSubjectableList:ArrayCollection = new
ArrayCollection();
public var licenceID:String;

private function getSubjectDataList(evt:ResultEvent):void {
var count:Number = 0;
var _data:Array;
var _data2:Array;

for( count = 0; count < evt.result.id.length; count++)
{
//create array for drop down
_data = [{ID: evt.result.id[count], label: evt.result.name
[count]}];
_data2 = _data.concat(_data2);
initSubjectableList = new ArrayCollection(_data2);

if(evt.result.id[count] == licenceID) {
editLicence.selectedIndex = count;

mx.controls.Alert.show("ID");
mx.controls.Alert.show(evt.result.id[count]);
}
}
}

]]>
</mx:Script>

Dirk Enders (Feuerwerk-Kalender)

unread,
Mar 8, 2009, 10:13:35 AM3/8/09
to flex-ug-r...@googlegroups.com
Hi Michael,

ich weiß zwar nicht , ob ich Dein Problem richtig verstanden habe, aber
wennn es darum geht, eine Vorauswahl in der Drop Down Boc anzuzeigen,
dann schau mal
unter http://flex.sys-con.com/node/312098 nach.

Falls das nicht so ist , würde ich die get SubjectDataList mal umschreiben:

get... aber der Rüchgabetyp ist void

Der Block

_data = [{ID: evt.result.id[count], label: evt.result.name[count]}];
_data2 = _data.concat(_data2);
initSubjectableList = new ArrayCollection(_data2);

ist mir etwas schleierhaft.

Du erzeigst initSubjectable list jedes mal neu, und das in einer Schleife....

Gruß
Dirk




strecker...@googlemail.com schrieb:

Daniel Kopp

unread,
Mar 8, 2009, 3:19:49 PM3/8/09
to flex-ug-r...@googlegroups.com
Hallo Michael,

ein paar Gegenfragen die für eine Antwort nötig sind:
1) editLicence ist deine Combobox?
2) Welcher Wert soll vorselektiert werden? licenceID?
3) Welche Werte hat der DataProvider deiner Combobox?

Für ein Schuss ins blaue würde ich sagen müsste das ganze ungefähr so aussehen:

<mx:Script>
       <![CDATA[
               import mx.controls.Alert;
       import mx.collections.ArrayCollection;

       [Bindable]
       public var initSubjectableList:ArrayCollection = new
ArrayCollection();
       public var licenceID:String;

       private function getSubjectDataList(evt:ResultEvent):void {
               var count:Number = 0;
               var _data:Array;
               var _data2:Array;

               for( count = 0; count < evt.result.id.length; count++)
               {
                               //create array for drop down
                               _data = [{ID: evt.result.id[count], label: evt.result.name
[count]}];
                               _data2 = _data.concat(_data2);
                               initSubjectableList = new ArrayCollection(_data2);
               }

editLicense.dataProvider = _data;

for( count = 0; count < editLicense.dataProvider.length; count++){
    if(editLicense.dataProvider[count].ID == licenseID){
       editLicense.selectedIndex = count;
       break;
   }
}
       
       }

      ]]>
</mx:Script>

Viele Grüße
Daniel
Reply all
Reply to author
Forward
0 new messages