Когда я редактирую последнюю строку сетки, вызывается мой метод события itemEditEnd, но данные в моей коллекции ArrayCollection не обновляются, чтобы отразить сделанные изменения. Все остальные столбцы работают, похоже, только в последнем столбце есть проблема. Я не уверен, если это ошибка, или мне нужно сделать что-то другое? (Flash Builder 4.5 / Flex 4.5.1)
У меня есть простая редактируемая 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 пиксель. Кажется, это работает, когда я выкладываю вкладку, теперь, когда это уже не последний столбец, кажется, что он работает. Хотя это своего рода клуге.
О, я только что заметил, когда я нажимаю, ни одно из них не обновляется, это только когда я вкладываю! Так что это еще одна проблема ??