<mx:DataGrid ="MyDataGrid">
<mx:columns>
<mx:DataGridColumn headerText="Resource" width="200" itemRenderer="com.myClasses.myGridDropdownRenderer"/>
</mx:columns>
</mx:DataGrid>
Вот ваш itemRenderer для вашей сетки данных.
<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox prompt="Please select a Rating" change="stuffChanged()" dataProvider="{data.dataField2_Array}"
xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import flash.events.Event;
import mx.controls.Alert;
import mx.core.Application;
import mx.collections.ArrayCollection;
override public function set data( value:Object ) : void {
super.data = value;
}
public function stuffChanged():void{
var myListData:DataGridListData = DataGridListData(listData);
var r:int=myListData.rowIndex;
var c:int=myListData.columnIndex;
//Application.application.whateverStuff[r+1][c]=this.value;
Application.application.whateverStuff[r+1][c]=
this.selectedItem.data;
}
]]>
</mx:Script>
</mx:ComboBox>
Это будет в вашем основном приложении, которое будет содержать это значение.
[Bindable] public var whateverStuff:ArrayCollection;
Теперь, когда ваши данные изменены, они содержат данные. Вы нажимаете на кнопку сохранить это значение в объекте строк.
[Bindable] public var rows:Object = new Object();
rows=Application.application.whateverStuff;
Когда вы отправляете значение обратно в базу данных, отправляйте все вместе с этим объектом строк.
Обновление:
После того, как я прочитал ваш комментарий к предыдущему ответу, я узнал, что у каждого из вашего поля со списком есть свои варианты. Ты должен был упомянуть об этом раньше.
Когда вы щелкаете по выбранным строкам, вы должны иметь возможность собрать идентификатор строки, и это обеспечит обновление только идентификатора этой строки в базе данных, даже если вы обновите комбинированный список других строк ,
После выбора строки щелкните и проверьте, какой идентификатор строки вы выбрали с помощью Alert или trace, а затем отправьте это значение только через диспетчер событий.