Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext.list.ListView (https://javascript.ru/forum/extjs/15343-ext-list-listview.html)

Костэн 22.02.2011 23:32

Ext.list.ListView
 
Доброго времени суток. У меня возник вопрос по поводу отслеживания выбранного значения. В документации кратко описываются методы getSelectedNodes() и getSelectedRecords(). При их применении я наблюдаю только "[object HTMLDListElement]" в первом случае и, "[object Object]" во втором. Подскажите, какие действия ещё необходимо сделать, чтобы добиться желаемого результата.

VKS 24.02.2011 11:05

Поставить firebug и использовать console.log()

Костэн 24.02.2011 15:08

Цитата:

Сообщение от VKS (Сообщение 93791)
Поставить firebug и использовать console.log()

У меня есть firebug. Для тестирования в моём ListView есть код:
listeners:{
	click:function(){
		var n = this.getSelectedRecords();
				    		
		console.log(n);
	}
}

В консоль выводится строка:
[Object { phantom=true, id="ext-record-57", more...}]

Когда я на неё нажимаю - строка разворачивается. Первая строка - массив с названием data, в нём находятся две записи - user и userId. Когда я пытаюсь в console.log() вместо n добавить n.data.userId, выскакивает ошибка - n.data is undefined. Подскажите, что я делаю неправильно ?

VKS 25.02.2011 16:15

У вас на выходе массив объктов, соответственно как с массивом и необходимо работать, обращайтесь либо по индексу или через итерацию

listeners:{
	click:function(){
		var n = this.getSelectedRecords();
		Ext.each(n, function (r) {
                   console.log(r);
                });
	}
}

Костэн 05.04.2011 16:30

Цитата:

Сообщение от VKS (Сообщение 94020)
У вас на выходе массив объктов, соответственно как с массивом и необходимо работать, обращайтесь либо по индексу или через итерацию

listeners:{
	click:function(){
		var n = this.getSelectedRecords();
		Ext.each(n, function (r) {
                   console.log(r);
                });
	}
}

Спасибо за помощь. У меня получилось самому найти решение. Вот его код:
listeners:{
	click:function(DataView, index, node, e){
		var sValue = this.myListView.getRecord(node);

         }, scope: this
}


Часовой пояс GMT +3, время: 18:36.