2009-08-21 8 views
0

Je voudrais placer un TreeGrid dans mon application afin que les colonnes puissent être triées. Si vous faites référence à ce sample application, vous remarquerez que si vousCréation d'un TreeGrid avec des colonnes pouvant être triées

  1. Ouvrez un nœud de branche
  2. Trier par l'une des colonnes
  3. Fermer ce nœud de branche

alors le TreeGrid commence pour sortir de pile et les colonnes en double commencent à apparaître et d'autres colonnes commencent à disparaître. Ce que je voudrais, c'est que les colonnes ne soient triées que par les nœuds les plus externes. Une tentative que j'ai eue était d'exécuter treeGrid.closeAllItems() avant que le tri se produise. Toutefois, cela ne fonctionne pas, car un événement Sort Column est distribué alors que closeAllItems est en cours d'exécution. La liste est donc corrompue et les exceptions listOutOfBounds sont levées.

Est-ce que quelqu'un a eu du succès avec ça, ou a des idées?

Répondre

0

Voici un morceau de code de travail

<?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> 

Bu utilise ce AdvancedDataGrid et il fonctionne parfaitement bien.

+0

Ça marche. Je vous remercie! – pfhayes

+0

oui c'est ça :) bienvenue –

Questions connexes