У меня есть Datagrid с ArrayCollection в качестве DataProvider, arrayCollection частично генерируется вызовом remoteObject, кажется, что dataprovider работает по крайней мере, пока я не пытаюсь редактировать поле ...
По RemoteObject Iполучить ArrayCollection только с полем ip
, но сетка данных ищет поля ip
, check
и save
... Если я добавлю / отредактирую это новое поле, оно будет работать, но только при определенных условиях
DataGrid:
<s:DataGrid id="datagrid" left="10" right="10" top="136"
dataProvider="{listaIPCheck}" bottom="10" requestedRowCount="4">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="ip" headerText="Asset"/>
<s:GridColumn dataField="check" headerText="Inventory"/>
<s:GridColumn dataField="save" headerText="Salvataggio"/>
</s:ArrayList>
</s:columns>
</s:DataGrid>
Сценарий:
[Bindable]private var listaIPCheck:ArrayCollection;
private function ro_resultHandler(event:Event=null):void
{
listaIPCheck = new ArrayCollection();
listaIPCheck = ro.getListUpdate.lastResult;
heap = 0;
// Read Below {POINT #1}
init3();
}
private function init3():void
{
// Read Below {POINT #2}
if (heap<listaIPCheck.length)
{
// omitted the initialization of the process p
p.addEventListener(NativeProcessExitEvent.EXIT, onExit);
try{
p.start(startupInfo);
}catch(e:Error){}
}
}
private function onExit(e:NativeProcessExitEvent):void {
// Read below {POINT #3}
}
Вот мой код, теперь, как вы можете видеть, есть 3 строки, где я написал, чтобы прочитать ниже ..Давайте предположим, что вместо простой строки комментария (один раз за раз) нужно поместить эту простую for
for (var k:Number=0;k<listaIPCheck.length;k++)
{
listaIPCheck.getItemAt(k).check = "checkVal";
listaIPCheck.getItemAt(k).save = "saveVal";
}
Этот код всегда работает в 3 точках, поэтому в конце вызова ArrayCollection всегдазаполнены новыми значениями, но таблица данных обновляет элементы только в точках #1
и #2
Почему бы не в Point #3
???