使用可排序列创建TreeGrid

时间:2009-08-21 13:59:10

标签: flex

我想在我的应用程序中放置一个TreeGrid,以便对列进行排序。如果您参考此sample application,您会注意到,如果您

  1. 打开分支节点
  2. 按其中一列
  3. 排序
  4. 关闭该分支节点
  5. 然后TreeGrid开始摆脱wack,重复的列开始出现,其他列开始消失。我想要的是让列只按最外面的节点排序。

    我的一次尝试是在排序发生之前运行treeGrid.closeAllItems()。但是,这不起作用,因为在closeAllItems运行时调度Sort Column事件,因此列表混乱并且抛出listOutOfBounds异常。

    有没有人对此有任何成功,或有任何想法?

1 个答案:

答案 0 :(得分:0)

这是一段工作代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
    <![CDATA[
        import mx.collections.HierarchicalData;

    ]]>
</mx:Script>

   <mx:XMLList id="dataProviderXMLList">
        <node id="1" name="Companies" type="COMPANIES" desc="All Companies" statusIcon="statusIcon">
            <node id="2" name="Adobe" type="COMPANY" desc="Adobe inc." statusIcon="statusIcon">
                <node id="5" name="Adobe Consulting" type="COMPANY" desc="Adobe (formerly macromedia)" statusIcon="statusIcon" />
                <node id="6" name="EDBU" type="COMPANY" desc="Database company" statusIcon="statusIcon" />
            </node>
            <node id="3" name="Macromedia" type="COMPANY" desc="Adobe (formerly macromedia)" statusIcon="statusIcon" />
            <node id="4" name="Oracle" type="COMPANY" desc="Database company" statusIcon="statusIcon" />
        </node>   
    </mx:XMLList>

    <mx:AdvancedDataGrid width="100%" height="100%" sortExpertMode="true" id="adg1" designViewDataType="tree" dataProvider="{new HierarchicalData(dataProviderXMLList)}">
        <mx:columns>
            <mx:AdvancedDataGridColumn headerText="Companies" dataField="@name"/>
            <mx:AdvancedDataGridColumn headerText="COMPANIES" dataField="@type"/>
            <mx:AdvancedDataGridColumn headerText="All Companies" dataField="@desc"/>
        </mx:columns>
    </mx:AdvancedDataGrid>

</mx:Application>

这是使用AdvancedDataGrid,它完全正常。