2013-06-26 2 views
2

Моя структура структуры списка представлений данных выглядит следующим образом.Как установить элемент данных в datasource для listview kendo ui

<div id="listView"> 
<div class="product"><h3>India</h3></div> 
<div class="product1"><h3>Gujarat</h3></div> 
<div class="product"><h3>Surat</h3></div> 
</div> 

Я хочу установить новые данные, в которых у datasource есть класс product1.

ex. подобный

<div class="product1"><h3>Gujarat</h3></div> 

Я хочу изменить Гуджарат на другое название.

Я использовал код ниже, но этот набор только первый элемент, а не определенный класс.

var firstItem = $('#listView').data().kendoListView.dataSource.data()[0]; 
firstItem.set('name','The updated Name'); 

Так что любезно ответьте, если знаете.

+0

Как вы инициализируете древовидную структуру? – OnaBai

ответ

6

Вы можете попробовать:

var list = $("#listView").data("kendoListView"); 
var uid = $(".product2", list.target).data("uid"); 
item = list.dataSource.getByUid(uid); 
item.set("name", "The updated Name"); 

Что я делаю:

  • Получить ссылку на ваш ListView Кендо UI
  • экстракте uid для элемента списка.
  • Используйте getByUid от DataSource, чтобы найти элемент с этим uid.
  • Обновления name.

Второй подход, вероятно, менее эффективным:

var list = $("#listView").data("kendoListView"); 
var idx = $("div", list.target).index($(".product1", list.target)); 
var item = list.dataSource.data()[idx]; 
item.set("name", "The updated Name"); 
  • Получить ссылку на ваш взгляд списка.
  • Затем найдите индекс, извлекая все div внутри списка (каждый элемент в списке), а затем найдите индекс того, который имеет класс product1.
  • Получить элемент из источника данных ListView.
  • Наконец, обновляется name.
0

Можете ли вы использовать что-то вроде этого?

var firstItem = $('#listView.product1 h3').data().kendoListView.dataSource.data()[0]; 

Или с JQuery, вы просто использовать

$('#listView.product1 h3').text("Some updated text"); 

или

$('#listView div.product1 h3').text("Some updated text"); 

, если вы хотите, чтобы искать только в дивы.

+0

Не работает. Я хочу использовать метод .set для установки данных в источнике данных. если мы используем .text, то он устанавливается в dom, но не в источнике данных, поэтому, когда мы меняем страницу в сетке kendo, измените текст, который не отображается. –