2012-04-09 5 views
0

필자는 몇 시간 동안 고심하고있었습니다! 난 정말있는 ArrayCollection를 통해 가져온 외부 XML 파일을 사용하여 트리 컨트롤을 채우는 노력어레이 콜렉션을 사용한 플렉스 트리 제어

임 도움이 필요하지만 난

좋아 내 외부 XML 파일 부분이라고 트리에 표시 그룹에 XML 데이터가 필요합니다. XML은 그것은 다음과 같다 :

<NewDataSet> 
    <Parts> 
     <PartGroup>51 Series</PartGroup> 
     <PartType>20051</PartType> 
     <PartNumber>20051-3</PartNumber> 
     <PartDesc>Reusable Socket-51 SER</PartDesc> 
     <PartImageFile /> 
    </Parts> 
    <Parts> 
     <PartGroup>51 Series</PartGroup> 
     <PartType>20051</PartType> 
     <PartNumber>20051-4</PartNumber> 
     <PartDesc>Reusable Socket-51 SER</PartDesc> 
     <PartImageFile /> 
    </Parts> 
    <Parts> 
     <PartGroup>51 Series</PartGroup> 
     <PartType>20151</PartType> 
     <PartNumber>20151-12-12</PartNumber> 
     <PartDesc>Penis</PartDesc> 
     <PartImageFile>20151-vi copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>090</PartType> 
     <PartNumber>090-20B</PartNumber> 
     <PartDesc>Replace Ferrule-90 SER</PartDesc> 
     <PartImageFile>090 copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>090</PartType> 
     <PartNumber>090-4B</PartNumber> 
     <PartDesc>Replace Ferrule-90 SER</PartDesc> 
     <PartImageFile>090 copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>20090</PartType> 
     <PartNumber>20090-12</PartNumber> 
     <PartDesc>Replacement Socket-FA</PartDesc> 
     <PartImageFile>20090-vi copy.jpg</PartImageFile> 
    </Parts> 
    <Parts> 
     <PartGroup>90 Series</PartGroup> 
     <PartType>20090</PartType> 
     <PartNumber>20090-12C</PartNumber> 
     <PartDesc>Replacement Socket-FA, SS</PartDesc> 
     <PartImageFile>20090-vi copy.jpg</PartImageFile> 
    </Parts> 
</NewDataSet> 

이 시료 (실제 XML은 7,591 라인 길이) 아니라 ..

다음 임

를 사용
<mx:HTTPService id="getPartsXml" url="assets/db/Parts_DB.xml" result="partsDB=getPFDXml.lastResult.NewDataSet.Parts"/> 

xml을 구부리기. partsDB는 트리 컨트롤에 바인드 된 Array Collection입니다.

나는 다른 데이터를 잃지 않고 필요한 방식으로 데이터를 표시하기 위해 트리를 가져 오는 중 무슨 문제가 있습니다.

난 내가 사용자가 부품의 거대한 트리를 가지고위한 의도가 무엇인지 또한이

+-51 series 
| +->20051 
| | |->20051-3 
| | |->20051-4 
| | 
| +->20151 
|  |->20151-12-12 
| 
+-90 Series 
    +->090 
    | |->090-20B 
    | |->090-4B 
    | 
    +->20090 
     |->20090-12 
     |->20090-12C 

처럼 표시 트리를 필요로 위의 XML에서, 그리고 그들은이 PARTNUMBER에서 노드를 선택 무슨 뜻인지 레벨을 드래그하여 파트의 다른 모든 태그가 표시되는 DataGrid로 드래그합니다.

Ive는 행운없이 많은 것을 시도하고 시도했습니다. 심지어 지금 내가 생각하는 어쩌면 배열 컬렉션을 통해 반복하고 나무를위한 방법을 표시 할 수있는 새로운 배열을 만든 다음 사용자가 드래그하여 그리드에 파트를 놓을 때 나는 코드를 가질 것이다. 원래의 arraycollection에서 해당 부품 번호를 찾아서 데이터 배열을위한 새로운 배열에 추가합니다 ... 나는 여전히 트리에 대한 새 배열을 어떻게 만들지 모릅니다! 당신은 개별 부품 번호 :(나는이 감각을 만드는 희망

답변

0

당신은이 개 구성 요소가 얻을 전에 XML 데이터가 partgroup별로 그룹화 한 후 parttype 다시 그룹화 원인이된다. 첫 번째 (트리) diplaying되지 않는다 데이터가 올바르게 :.

  1. 나무는 XML 데이터가 평평 계층 적 데이터를 기대 (하지만 배열 컬렉션에서) 그룹이 GroupingCollection2
  2. 또는 this 같은 트리 컨트롤을 시뮬레이션하기 위해 AdvancedDataGrid를 사용
  3. ...

DataGrid를 우려, 당신은 자신의 컬렉션을 함께 작동하지만 첫 번째 구성 요소의 컬렉션에서 객체와 공급이 가장 가능성이있어 : 1 ~

  1. 더블 클릭/드래그 앤 드롭 2는 2의 콜렉션에 인서트를 발생시키고 (이미 존재하는지 확인)
  2. 2에서 제거하는 방법을 포함시켜야합니다. 그렇지 않으면 항상 채워지거나 제거되지 않는 구성 요소가 생깁니다.