我有一個ArrayCollection作爲DataProvider的Datagrid,arrayCollection部分由remoteObject調用生成,數據提供者似乎至少工作,直到我嘗試編輯字段...DataGrid與ArrayCollection作爲DataProvider的奇怪行爲
通過該RemoteObject我只收到一個ArrayCollection與現場ip
,但數據網格查找領域ip
,check
和save
... 如果我只有特定條件
<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總是充滿着新的價值觀的結束,但數據網格ONL刷新項目y在點#1
和#2
爲什麼不在Point #3
???
你爲什麼要省略p的初始化過程?它是什麼?由於DataGrid不可編輯,您如何編輯該字段?你在編輯什麼字段?當你說代碼不起作用時;有什麼問題?它怎麼不工作?你有運行時錯誤嗎?或者你看到意外的行爲? – JeffryHouser
我省略了P的初始化過程,因爲它與問題無關......在POINT 1-2-3中使用'for'替代地工作並正確更新/添加指定的值,問題是如果我把在POINT 3中,ArrayCollection被編輯,但是數據網格中的更改不刷新,而點1-2更新(arrayCollection)和刷新(數據網格) – Marcx