Показать сообщение отдельно
Старый 21.04.2010, 21:58
  № 2  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Стала ясна одна штука, я ошибался, когда думал, что не работает только удаление предпоследней строки)
Удаление любой строки происходит криво. Точнее как, функция testKey работает нормально. Ловит нажатия Delete, удаляет нужный элемент массива, заносится в dg.dataProvider. И при дебаге все на своих местах.
Но затем, после любой активации dg, происходит "восстание из мертвых": срока, которая была удалена, появляется и заменяет строку, следующую за ней. Причем и в dataProvider и в aData одновременно.

Добавленно:

Не знаю почему это работает, но придумал следующий фокус:
Код AS3:
private function testKey(e:KeyboardEvent):void {
 
			if (e.keyCode == Keyboard.DELETE) {									
				dg.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN)); //!!! отвлекающий маневр
				dg.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_UP));//типо ничего и не было)
				var index:uint = dg.selectedIndex;
				aData.splice(index, 1);
				for (var i = index; i < aData.length-1; i++) {
					aData[i]["№"] = i + 1;									
				}
				dg.dataProvider = new DataProvider(aData);	
			}
		}
Уф, неужели получилось)


Последний раз редактировалось Xero201; 22.04.2010 в 02:15.