![]() |
Проблема с обновлением данных в собственном DataGrid, после удаления строки
Вложений: 4
Хочется сделать такой DataGrid, в котором можно добавлять произвольное количество строк. Для этого решил сделать его похожим на DataGridView из C# (рис. DataGridView)
Т.е. когда при переходе на последнюю строчку добавляется еще одна. А еще хочется нумерацию строк. Для этого завел дополнительный столбец «№», со специальным DataGridCellEditor (рис. VDataGrid_begin) В котором помимо визуальных настроек, добавлен слушатель KeyboardEvent.KEY_DOWN, для того, чтобы если нажата «DELETE» - удалить текущую строку. Вот тут и возникла беда(. При удалении любой строки, кроме предпоследней (т.е. той, что идет перед звездочкой) – все нормально. Но вот если удалить предпоследнюю, то строка со звездочкой столбец «№», меняет свою «*» на число. там где сейчас «3» раньше была звездочка(( Причем это происходит не сразу после удаления, а только при последующей активации DataGrid (звездочка внаглую заменяется номером строки). На рис. VDataGrid_begin, вместо «3» после удаления была «*». Первая мысль была – ошибка где-то в циклах, которые захватывают при перенумерации и последнюю строку. Но тогда почему замена происходит не сразу, а только при повторном нажатии на DataGrid. Вторая мысль – во всем виноват слушатель, который я запихнул в DataGridCellEditor, но что с ним можно сделать не знаю. Помогите, пожалуйста. Вот код VDataGrid (пример прилагается в архиве): Код AS3:
|
Стала ясна одна штука, я ошибался, когда думал, что не работает только удаление предпоследней строки)
Удаление любой строки происходит криво. Точнее как, функция testKey работает нормально. Ловит нажатия Delete, удаляет нужный элемент массива, заносится в dg.dataProvider. И при дебаге все на своих местах. Но затем, после любой активации dg, происходит "восстание из мертвых": срока, которая была удалена, появляется и заменяет строку, следующую за ней. Причем и в dataProvider и в aData одновременно. :eek: Добавленно: Не знаю почему это работает, но придумал следующий фокус: Код AS3:
|
| Часовой пояс GMT +4, время: 11:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.