Цитата:
Сообщение от GBee
я так понял надо ловить itemEditBeginning и в событии уже приходит dataField и rowIndex, c помощью которых вы извлекаете значение из вашего датапровайдера.
|
Нет, не ловит оно обновленную ячейку.. При переходе на следующую ячейку в слушатель события ITEM_EDIT_END приходит старое значение ячейки. Какой-то заколдованный круг.
Как же всетаки словить обновленное значение при окончании редактирования...?
Добавлено через 2 часа 44 минуты
В общем разобрался.
Решил через номера ячеек выкрутиться. Вот код:

Код AS3:
private var _tempArrChanges:Array = new Array(); // объявляем в глобальной области временный массив в
//котором будем хранить значения покинутой ячейки
..............................................
dataGridBase.addEventListener(DataGridEvent.ITEM_EDIT_BEGINNING, onGridBeginEditHandler); // вешаем
//слушателя на событие подготовки начала редактирования DataGrid'а
protected function onGridBeginEditHandler(eObj:Object):void
{
if (_tempArrChanges.length != 0)
{
var tempStr:String = ''; // строчка сравнения
tempStr = eObj.currentTarget.getItemAt(_tempArrChanges[0][0])[_tempArrChanges[0][1]];
if (tempStr != _changedItem) // сравниваем значения
{
Label.text = 'Были произведены изменения!!!';
} else
{
Label.text = 'Без изменений';
}
}
_changedItem = eObj.currentTarget.getItemAt(eObj.rowIndex)[eObj.dataField]; // записываем значение на которой клацнул пользователь
if (_tempArrChanges.length != 0) _tempArrChanges.splice(0,1); // удалим
//ненужную больше запись
_tempArrChanges.push([eObj.rowIndex, eObj.dataField]); // запомним номер строки
//и имя столбика на котором клацнули
}
GBee, спасибо. Ваши комментарии не пропали в пустую.
.