我想为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