PDA

Просмотр полной версии : Проблема с DataGrid.addItem();


Azy
03.01.2007, 14:21
Создал на сцене объект DataGrid с именем grid.
написал такой код:var myDP = new Array({name:"Ch1ris", price:"Priceless"}, {name:"Chris", price:"Priceless"}, {name:"Chris", price:"Priceless"}, {name:"Nigel", price:"Cheap"});
grid.dataProvider = myDP;
var obj: Object = new Object();
obj.name = "Chris";
obj.price = "Priceless";
grid.addItem(obj);
obj.name = "Chris";
obj.price = "Priceless";
grid.addItem(obj);
obj.name = "Chris";
obj.price = "Priceless";
grid.addItem(obj);

Проблема: 1-е три записи, которые добавлял через dataProvider работают нормально.
Если нажать на любую из добавленных через addItem - то при наведении на остальные, добавленные так же они начинают подсвечиваться как selected.
Уже всю голову сломал. В чем проблема.
Пробовал и myDP.push(obj) - все равно не помогает.

Azy
03.01.2007, 14:34
Разобрался. Проблема в том, что для каждого addItem нужен новый экземпляр obj.

vic_
03.01.2007, 14:41
я не успел :)
лучше сразу без создания obj, понятнее и меньше лишних телодвижений

var myDP = new Array({name:"Ch1ris", price:"Priceless"}, {name:"Chris", price:"Priceless"}, {name:"Chris", price:"Priceless"}, {name:"Nigel", price:"Cheap"});
grid.dataProvider = myDP;
grid.addItem({name:"Ch1ris", price:"Priceless"});
grid.addItem({name:"Ch1ris", price:"Priceless1"});
grid.addItem({name:"Ch1ris", price:"Priceless2"});

Nirth
03.01.2007, 15:08
это называется создание объекта литералом.

Не всегда удобно (скажем когда свойств с десяток).

vic_
03.01.2007, 16:44
Спасибо. Понятно, строка длинная.
А универсальных решений и не бывает

Azy
04.01.2007, 12:42
это называется создание объекта литералом.

Не всегда удобно (скажем когда свойств с десяток).
А как динамически можно запихивать эти свойства туда?
т.е прокатит лиvar bzz:String = "Chris";
grid.addItem({name:bzz, price:"Priceless"});

Nirth
04.01.2007, 12:45
А почему бы не попробывать=)?
прокатит.