我想爲1個advancedDataGrid有兩個數據提供者:1個正常,第二個爲一列中的組合框。我想要這個組合框有數據庫中的列(我已經在arrayCollection中有)。 我只是不知道如何爲comboBox提供數據,它不必從每個comboBox的每個組合框(作爲自定義組件)讀取數據庫中的數據。我應該將arrayCollection傳遞給自定義組件嗎?或者在mxml中「內聯」?最好的辦法是什麼?advancedDataGrid與兩個提供者
感謝您的幫助
我想爲1個advancedDataGrid有兩個數據提供者:1個正常,第二個爲一列中的組合框。我想要這個組合框有數據庫中的列(我已經在arrayCollection中有)。 我只是不知道如何爲comboBox提供數據,它不必從每個comboBox的每個組合框(作爲自定義組件)讀取數據庫中的數據。我應該將arrayCollection傳遞給自定義組件嗎?或者在mxml中「內聯」?最好的辦法是什麼?advancedDataGrid與兩個提供者
感謝您的幫助
最簡單的是
你能不只是設置的ArrayCollection作爲屬性被綁定到每一行的對象?
一行等於一個對象,它的屬性包含綁定到comboBox的arrayCollection。
我認爲table_2中的field_2包含表2中的一行的鍵。
設置您的datagrid以使用table1作爲提供者。確保第二列與組合框一起使用自定義渲染器
<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>
是否所有的組合框(每行)都有相同的數據提供者? – Amarghosh 2009-11-12 15:51:41
是___________ – fazo 2009-11-12 18:01:03