Flex Tree不选择(“突出显示”)selectedIndices

时间:2011-11-05 20:27:51

标签: actionscript-3 flex treeview flex4.5 itemrenderer

我有一系列应该在我的树形控件中选择的项目。从下面的代码中可以看出,我将此数组绑定到树的selectedIndices属性。 selectedItems没有在树中正确选择(选择其他一些项目并且总是选择root).Flex似乎“忽略”我的项目(选择一些其他索引)。我错过了什么吗?

也许我会以错误的方式解决这个问题?

感谢您的帮助!

我的XMLList: -

<fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
        <fx:XMLList id="XMLList">
        <node>
            <node name="max">
                <node name="Emanuele"
                      surname="Tatti" age="23" wage="1200"/>
                <node name="Francesco" 
                      surname="Rapana " age="22" wage="1000"/>
                <node name="Constantin"
                      surname="Moldovanu" age="23" wage="1200"/>
                <node name="Marco" 
                      surname="Casario" age="29" wage="1500">
                    <node name="Marco" 
                          surname="Casario" age="29" wage="1500">
                        <node name="Marco" 
                              surname="Casario" age="29" wage="1500">
                            <node name="Marco" 
                                  surname="Casario" age="29" wage="1500">
                            </node>
                        </node>
                    </node>                 
                </node>
            </node>

        </node>
        </fx:XMLList>
</fx:Declarations>

我的动作脚本功能: -

public function select_tree():Void 
{
tree.validateNow();
var allItems:Array = new Array();
for(var n:Int =2;n<7;n+2)       
{
        allItems[n]=n; // o/p- 2,4,6
}

tree.selectedIndices = allItems1;   //2,4,6 items should select ,but 0,2,4,5 are selected why?
      }

*****My MXML:-*****
<mx:Button id="btn" label="Find Unmatch Nodes" width="221" height="30" click="select_tree()"/>



<mx:Tree id="tree"  right="10" top="54" bottom="10" width="49.5%" dataProvider="{XMLList}"
    fontFamily="Verdana" fontSize="11" showScrollTips="true"
    allowMultipleSelection="true"
    alternatingItemColors="[#F5F5F5]"
    labelField="@label" selectionColor="#ECF335" showRoot="false"/>

1 个答案:

答案 0 :(得分:2)

通过将tree.selectedIndices设置为allItems1(而不是allItems),您的代码出错了。

tree.selectedIndices = allItems1;

为什么不创建一个Bindable Array,并将它设置为树的selectedIndices属性?

[Bindable]
public var selectedTreeValues:Array = new Array();

...

<mx:Tree id="tree"  right="10" top="54" bottom="10" width="49.5%" 
    dataProvider="{XMLList}"
    fontFamily="Verdana" fontSize="11" showScrollTips="true"
    allowMultipleSelection="true"
    alternatingItemColors="[#F5F5F5]"
    labelField="@label" selectionColor="#ECF335" showRoot="false"
    selectedIndices="selectedTreeValues"
/>

最后,追踪出来,而不是手动完成它? Flex的一个优点是能够利用Binding值。