我有一个由dataprovider填充的Flex ComboBox,一切正常...
dataprovider
ComboBox
我现在想要在0索引处添加一个默认的“--选择一个项目--”选项,我如何在这样做的同时仍然使用dataprovider?我没有见过这样的例子,但我无法想象这会有多难……
vdzxcuhz1#
如果不需要默认项是可选的,可以使用ComboBox的prompt属性并将selectedIndex设置为-1。这将显示您将propmt设置为选定值的字符串,直到用户选择另一个。然而,它不会出现在选项列表中。
prompt
selectedIndex
propmt
w1e3prcc2#
我今天遇到了这个问题,想和大家分享我的解决方案。
我有一个ComboBox,它有一个包含对象的ArrayCollection作为它的数据提供程序。当应用程序运行时,它使用RemoteObject获取ArrayCollection/对象。在我调用事件处理程序中,我只是让它将另一个对象追加到ArrayCollection的开头并选择它:
var defaultOption:Object = {MyLabelField: "Select One"}; myDataProvider.addItemAt(defaultOption, 0); myComboBox.selectedIndex = 0;
以下是我的组合框的外观以供参考:
<mx:ComboBox id="myComboBox" dataProvider="{myDataProvider}" labelField="MyLabelField" />
ugmeyewa3#
我过去处理这个问题的方法是创建一个新集合作为组合框的数据提供程序,然后侦听对原始源的更改(使用mx.BindingUtils.ChangeWatcher)。当我收到这样的通知时,我会重新创建我的自定义数据提供程序。
mx.BindingUtils.ChangeWatcher
我希望我知道一个更好的方法来处理这个问题;我会监控这个问题,以防万一。
vcudknz34#
对于选定的组合框的缺省值,这可以在以下代码中使用
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}" />
4条答案
按热度按时间vdzxcuhz1#
如果不需要默认项是可选的,可以使用
ComboBox
的prompt
属性并将selectedIndex
设置为-1。这将显示您将propmt
设置为选定值的字符串,直到用户选择另一个。然而,它不会出现在选项列表中。w1e3prcc2#
我今天遇到了这个问题,想和大家分享我的解决方案。
我有一个ComboBox,它有一个包含对象的ArrayCollection作为它的数据提供程序。当应用程序运行时,它使用RemoteObject获取ArrayCollection/对象。在我调用事件处理程序中,我只是让它将另一个对象追加到ArrayCollection的开头并选择它:
以下是我的组合框的外观以供参考:
ugmeyewa3#
我过去处理这个问题的方法是创建一个新集合作为组合框的数据提供程序,然后侦听对原始源的更改(使用
mx.BindingUtils.ChangeWatcher
)。当我收到这样的通知时,我会重新创建我的自定义数据提供程序。我希望我知道一个更好的方法来处理这个问题;我会监控这个问题,以防万一。
vcudknz34#
对于选定的组合框的缺省值,这可以在以下代码中使用