14

ComboBox私はすべてがうまくいっているによって移入されるフレックスを持ってdataproviderいます...

デフォルトの「 -- select a item --」 オプションを 0 インデックスに追加したいのですが、これを行うにはどうすればよいdataproviderですか? そのような例は見たことがありませんが、これが難しいとは想像できません...

4

4 に答える 4

36

デフォルト項目を選択可能にする必要がない場合は、 のpromptプロパティを使用してを -1ComboBoxに設定できます。これにより、ユーザーが別の値を選択するまで、selectedIndex設定した文字列が選択された値として表示されます。propmtただし、オプションのリストには表示されません。

于 2008-08-30T11:07:33.947 に答える
4

私は今日この問題に遭遇し、私の解決策を共有したいと思いました。

データプロバイダーとしてオブジェクトを含むArrayCollectionを持つComboBoxがあります。アプリケーションが実行されると、RemoteObjectを使用して外に出てArrayCollection/Objectsを取得します。その呼び出しのイベントハンドラーで、ArrayCollectionの先頭に別のオブジェクトを追加して選択します。

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

これは私のComboBoxが参考のためにどのように見えるかです:

<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" labelField="MyLabelField" />
于 2009-06-09T23:41:18.207 に答える
1

過去にこれに対処した方法は、コンボボックスのデータプロバイダーとして機能する新しいコレクションを作成し、元のソースへの変更をリッスンすることです ( mx.BindingUtils.ChangeWatcher. このような通知を受け取ると、カスタム データ プロバイダーを再作成します。

これにアプローチするより良い方法を知っていたらいいのにと思います。念のため、この質問を監視します。

于 2008-08-29T20:39:14.157 に答える
0

これは、コンボボックスの選択されたデフォルト値に対して次のコードで使用できます

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}" />
于 2013-09-26T12:53:03.800 に答える