當我編輯網格的最後一行時,我的itemEditEnd事件方法被調用,但是我的ArrayCollection中的數據未被更新以反映所做的更改。所有其他列工作,只是最後一列似乎有問題。我不確定這是一個錯誤,還是我需要做一些不同的事情? (Flash Builder 4.5/Flex 4.5.1)Flex - DataGrid編輯 - 一個錯誤,或允許在數據網格中編輯的正確方法?
我有一個簡單的可編輯DataGrid ArrayCollection,因爲它是數據提供者。它填充和我可以編輯。我趕上了itemEditEnd事件,並從我的數組集合讓行傳回服務器:
public var _recs:ArrayCollection = new ArrayCollection;
<mx:DataGrid id="recsDG" dataProvider="{_recs}"
editable="true" itemEditEnd="recsDG_itemEditEndHandler(event)">
<mx:columns>
<mx:DataGridColumn headerText="id" dataField="id" editable="false"/>
<mx:DataGridColumn headerText="type" dataField="type"/>
... more columns ...
</mx:columns>
</mx:DataGrid>
protected function recsDG_itemEditEndHandler(event:DataGridEvent):void
{
// THIS IS MY ARRAY COLLECTION/ROW(?): _recs[event.rowIndex]
}
如果我點擊到最後一列第二一次又一次改變它,我可以看到,值在數組集合中現在變成了我之前做的更改。例如,當調試器跟蹤,比如我的原始值是「AAA」時,我將它更改爲「BBB」並按Tab,在調試器的itemEditEnd中顯示「AAA」(僅適用於最後一列)。然後我將該值更改爲「CCC」和選項卡,並在調試器中看到「BBB」!
我也嘗試過'event.currentTarget.itemEditorInstance.data'屬性,並且它也沒有用鍵入的新值更新。
作爲一個臨時解決方案,我在網格末尾添加了一個可編輯列,沒有列標題,寬度爲1像素。這似乎工作,當我列出,現在它不再是最後一列,它似乎工作。儘管如此。
哦,我剛剛注意到,當我點擊時,他們都沒有更新,只有當我標籤!所以這是另一個問題?