2009-11-12 3 views
0

1 개의 advancedDataGrid에 대해 2 개의 dataproviders를 갖고 싶습니다. 하나의 열에있는 콤보 박스의 경우 1 개의 일반 데이터 필드와 두 번째 데이터 필드가 필요합니다. 이 콤보 상자에 데이터베이스의 열 (columnCollection에 이미있는 데이터)이 있어야합니다. 나는 모든 콤보 상자 (사용자 지정 구성 요소)마다 데이터베이스에서 해당 데이터를 읽을 필요가없는 방식으로 콤보 상자에 데이터를 제공하는 방법을 알지 못합니다. arrayCollection을 사용자 지정 구성 요소에 전달해야합니까? 또는 mxml에서 '인라인'합니까? 가장 좋은 방법은 뭔가? 어떤 도움두 공급자가있는 advancedDataGrid

+0

모든 행의 모든 ​​콤보 박스가 동일한 데이터 제공 업체입니까? – Amarghosh

+0

예 ___________ – fazo

답변

0

  • 당신의 itemRenderer에 정적 속성을 만들고
  • 또는 전역 변수를 통해의 itemRenderer의 데이터를 조회
0

에 대한

덕분에 당신은 각 행에 바인드되고있는 객체에 속성으로있는 ArrayCollection을 설정할 수 없습니다?

하나의 행은 comboBox에 바인딩 된 arrayCollection을 포함하는 속성을 가진 하나의 객체와 같습니다.

0

나는 가정 데이터를 전달하는 가장 쉬운 방법은 table1의 field_2에는 표 2의 행에 대한 키가 들어 있습니다.

table1을 공급자로 사용하도록 DataGrid를 설정합니다. 두 번째 열은 렌더러는 내부의 콤보와 단지 캔버스 콤보

<mx:AdvancedDataGrid dataProvider="{table1}"> 
    <mx:groupedColumns> 
     <mx:AdvancedDataGridColumn headerText="Column 1" dataField="field_1" /> 
     <mx:AdvancedDataGridColumn headerText="Column 2" dataField="field_2" 
     itemRenderer="{CustomRenderer}"/> 
    </mx:groupedColumns> 
</mx:AdvancedDataGrid> 

와 사용자 정의 렌더러를 사용해야합니다. 콤보 박스는 제공자로서 table2 데이터의 사본을 사용합니다 (단지 배열 컬렉션을 생성하고 데이터베이스의 데이터로 한번 채 웁니다). table1의 데이터를 사용하여 선택한 항목을 표시합니다.

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" dataChange="dataChange()> 
    <mx:Script> 
     <![CDATA[ 
     private function dataChange():void 
     { 
      //Update combobox selected index 
      myCombo.selectedIndex(data); 
     } 
     ]]> 
    </mx:Script> 

    <mx:ComboBox id="myCombo" dataProvider="{table2_copy}"\> 
</mx:Canvas> 
관련 문제