Frage

Ich habe einen Flex ComboBox das wird von a bevölkert dataprovider Alles ist gut...

Ich möchte jetzt eine Standardoption „--select a item –“ am Index 0 hinzufügen. Wie kann ich das tun und trotzdem a verwenden? dataprovider?Ich habe keine Beispiele dafür gesehen, aber ich kann mir nicht vorstellen, dass das schwierig sein wird ...

War es hilfreich?

Lösung

Wenn das Standardelement nicht auswählbar sein soll, können Sie das verwenden prompt Eigentum von ComboBox und stellen Sie die ein selectedIndex bis 1.Dadurch wird die von Ihnen festgelegte Zeichenfolge angezeigt propmt bis der ausgewählte Wert beibehalten wird, bis der Benutzer einen anderen auswählt.Es wird jedoch nicht in der Liste der Optionen angezeigt.

Andere Tipps

Ich bin heute auf dieses Problem gestoßen und wollte meine Lösung mitteilen.

Ich habe eine ComboBox mit einer ArrayCollection, die Objekte als Datenanbieter enthält.Wenn die Anwendung ausgeführt wird, verwendet sie ein RemoteObject, um die ArrayCollection/Objects abzurufen.In meinem Event-Handler für diesen Aufruf lasse ich einfach ein weiteres Objekt an den Anfang der ArrayCollection anhängen und es auswählen:

var defaultOption:Object = {MyLabelField: "Select One"};
myDataProvider.addItemAt(defaultOption, 0);
myComboBox.selectedIndex = 0;

So sieht meine ComboBox als Referenz aus:

<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" labelField="MyLabelField" />

Ich bin in der Vergangenheit damit umgegangen, indem ich eine neue Sammlung erstellt habe, die als Datenlieferant für die Combobox dient, und dann auf Änderungen an der Originalquelle gehorcht habe (mithilfe einer mx.BindingUtils.ChangeWatcher).Wenn ich eine solche Benachrichtigung erhalte, erstelle ich meinen benutzerdefinierten Datenanbieter neu.

Ich wünschte, ich wüsste einen besseren Weg, dies anzugehen;Ich werde diese Frage für alle Fälle im Auge behalten.

Dies kann mit folgendem Code für den ausgewählten Standardwert der Combobox verwendet werden

var index:String = "foo";
for(var objIndex:int = 0; objIndex < comboBox.dataProvider.length; objIndex++) {
  if(comboBox.dataProvider[objIndex].label == index)
  {
     comboBox.selectedIndex = objIndex;
     break;
  }
}
<mx:ComboBox id="comboBox" dataProvider="{_pageIndexArray}" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top