2011-08-04 7 views

답변

3

GroupingCollection 옵션을 사용할 수도 있습니다. 기본적으로 이러한 항목의 공통 속성을 기반으로 항목을 그룹화합니다. Flex 4를 사용중인 경우 GroupingCollection2를 사용하면 몇 가지 성능이 향상됩니다.

<mx:AdvancedDataGrid id="adg" initialize="{gc.refresh()}" 
         width="100%" height="100%"> 
     <mx:dataProvider> 
      <mx:GroupingCollection id="gc"> 
       <mx:Grouping> 
        <mx:GroupingField name="type" /> 
       </mx:Grouping> 
       <mx:source> 
        <s:ArrayCollection> 
         <fx:Object name="Shaggy" type="dog" /> 
         <fx:Object name="Scooby" type="human" /> 
         <fx:Object name="Fred" type="human" /> 
         <fx:Object name="Thelma" type="human" /> 
         <fx:Object name="Scrappy" type="dog" /> 
        </s:ArrayCollection> 
       </mx:source> 
      </mx:GroupingCollection> 
     </mx:dataProvider> 
     <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="name" headerText="Name"/> 
     </mx:columns> 
    </mx:AdvancedDataGrid> 

초기화 할 때마다 그리고 데이터 공급자가 업데이트 될 때마다 gc.refresh()를 호출하는 것을 잊지 마십시오.

public function set theDataProvider(ac:ArrayCollection):void{ 
    _theDataProvider = ac; 
    gc.refresh(); 
} 
+0

몇 시간 뒤죽박죽으로 마침내 나는 그걸 처리 할 수있었습니다. 고맙습니다! – PBG

2

이 동작을 위해 HierarchicalData 개체를 사용해야합니다. 하나를 사용하여 문제는 무엇입니까? ArrayCollection을 HierarchicalData 객체의 생성자에 전달한 다음 childrenField 속성을 설정하고 잘 수행 할 수 있어야합니다. 원래 배열 컬렉션에서 작업해야하는 경우 HierarchicalData 소스를 사용하여 ArrayCollection을 다시 가져 오거나 별도의 참조를 저장할 수 있습니다. HierarchicalData는 무거운 가중치 객체가 아니며 계층 구조를 나타내는 데 필요한 항목을 추가하기 만합니다. 우리의 경우 확장 된 행은 원본 배열 컬렉션 행과 동일한 데이터를 갖기를 원했기 때문에 객체의 children 속성을 객체 자체 만 포함하는 컬렉션을 갖도록 설정했습니다. 이렇게하면 행이 원본 데이터로 확장 될 때 행 확장으로 전달됩니다. 이 같은 것은 DTO/Value 객체에 있습니다. public var children : ArrayCollection;

children = new ArrayCollection ([{parent : this}]);

이 속성은 새 개체를 설정하도록 설정되어 있습니다.이 개체는 주위에 개체를 래핑하지 않고 속성을 할당하지 않고 방금 통과 한 다음 속성에 할당하면 확장 할 때 재귀 적으로 확장하려고하므로 아이도. 그런 다음 set 데이터 함수의 실제 렌더러에서 부모 속성을 확인하고 렌더러의 데이터 속성을 드롭 된 데이터의 부모로 설정합니다. 이렇게하면 모든 것이 렌더러 내의 데이터 속성에 바인딩 될 수 있으며 모두 잘.

이 정보가 도움이되는지 아니면 다른 목표를 달성하려는 경우 알려주십시오.

관련 문제