【发布时间】:2011-11-26 02:28:16
【问题描述】:
所以这是我目前遇到的问题。我试图简化我的代码,以便我可以尝试解决这个问题,但我绝对没有运气。我有一个视图堆栈,每个堆栈包含 1 个下拉列表。它们共享相同的数据提供者。我想要做的是从第一个中选择项目内容。一旦我这样做了,当我单击下一个堆栈的按钮时,我有一个从索引 0 搜索到 dataprovider 长度的函数,如果第一个堆栈中的项目与第二个匹配,我想让第二个下拉列表选择那个项目起来并显示它。我让它匹配,我尝试选择它,但是当我运行应用程序时,它显示为没有选择任何内容。这是我所拥有的:
编辑:我让它用于一个简单的示例,但是当我尝试在更复杂的示例中使用它时,由于某种原因在该按钮上单击它会将 selectedIndex 的值重置为 -1。我该如何防止这种情况发生?这是简单示例的工作代码
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="popList()">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]
private var myList : ArrayCollection;
[Bindable]
private var selectedItem : String;
[Bindable]
private var index : int;
[Bindable]
private var ind : int;
private function popList() : void {
myList = new ArrayCollection();
stack.initialize();
myList.addItem("1");
myList.addItem("2");
myList.addItem("3");
myList.addItem("4");
myList.addItem("5");
myList.addItem("6");
first.initialize();
second.initialize();
}
private function goNext() : void {
selectedItem = first.selectedItem;
stack.selectedChild = stackb;
for(index = 0; index < myList.length; index++){
var itemNow : String = myList[index].toString();
if(selectedItem == myList[index].toString()){
ind = index;
}
}
}
]]>
</fx:Script>
<mx:ViewStack id="stack" width="862" height="500">
<s:NavigatorContent id="stacka">
<s:DropDownList x="317" y="174" id="first" dataProvider="{myList}"></s:DropDownList>
<s:Button id="next" x="335" y="263" label="Next" click="goNext()"/>
</s:NavigatorContent>
<s:NavigatorContent id="stackb">
<s:DropDownList x="317" y="174" id="second" dataProvider="{myList}" selectedIndex="{ind}"></s:DropDownList>
</s:NavigatorContent>
</mx:ViewStack>
</s:Application>
【问题讨论】:
-
+1 用于尝试将样本尽可能简单地放在一起。谢谢!
-
我得到了我的简单示例......我现在遇到的问题是,当我在更复杂的项目中加载页面时,它会将 selectedIndex 的值重置为 -1。对此有什么想法吗?我编辑了我的问题以反映相关更改和更新。
-
我发布了完整的答案;你真的需要注意代码格式。
标签: arrays actionscript-3 apache-flex drop-down-menu