我需要一些帮助以编程方式设置组合框中的所选项目。
我有一个像这样的组合框:
<mx:ComboBox id="MyComboBox" change="puzzleHandler(event);" prompt="Make a Selection">
<mx:ArrayCollection id="myDP">
<mx:Object id="first" label="Label 1" series="2" pageTitle="Title 1"/>
<mx:Object id="second" label="Label 2" series="7" pageTitle="Title 2"/>
<mx:Object id="third" label="Label 3" series="9" pageTitle="Title 3"/>
</mx:ArrayCollection>
</mx:ComboBox>
我有一个关于深度链接的函数。如果有人输入网址:www.mysite.com/#view=2,他们将被带到网站的相应部分(无需在组合框中选择标签 2)。如何以编程方式设置组合框,使其与用户所看到的内容相对应?
在我的函数的 switch 语句中,我想将组合框设置为与视图对应的标签。如果“view=2”,则组合框应显示选定的“Label 2”。
case "view=1":
MyComboBox.selectedItem.label="Label 1";
parseUrl();
case "view=2":
MyComboBox.selectedItem.label="Label 2";
parseUrl();
case "view=3":
MyComboBox.selectedItem.label="Label 3";
parseUrl();
我尝试了这个: MyComboBox.selectedItem.label="Label 1" 但它不起作用。有什么建议么?
谢谢。
-Laxmidi
您不想更改 selectedItem 的对象;您想要更改 selectedItem 或 selectedIndex。尝试这个:
case "view=1":
MyComboBox.selectedIndex=0;
parseUrl();
case "view=2":
MyComboBox.selectedIndex=1;
parseUrl();
case "view=3":
MyComboBox.selectedIndex=2;
parseUrl();
如果您想设置 selectedItem 而不是 selectedIndex,则必须循环 dataProvider 以根据 case/URL 值查找实际项目。像这样的东西:
for each(var tempObject : Object in myList.dataProvider){
if(tempObject.label == urlValue){
MyComboBox.selectedItem = tempObject;
break;
}
}
第二种方法从长远来看更加灵活。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)