我需要一些帮助,以编程方式在拼图框中以编程方式设置所选项目.
我有一个像这样的组合框:
<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,他们将被带到网站的相应部分(没有在comboBox中选择标签2).如何以编程方式设置comboBox,以便它与用户所看到的内容相对应?
在我的函数的switch语句中,我想将comboBox设置为与视图对应的标签.如果“view = 2”,则comboBox应显示“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以根据大小写/ URL值查找实际项目.像这样的东西:
for each(var tempObject : Object in myList.dataProvider){ if(tempObject.label == urlValue){ MyComboBox.selectedItem = tempObject; break; } }
第二种方法是长期更灵活.