如何在listview kendo ui的数据源中设置数据项

时间:2013-06-26 11:29:14

标签: jquery kendo-ui kendo-grid

我的数据列表视图网格结构是这样的。

<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>

我想设置数据源具有类product1的新数据。

离。喜欢

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

我想将古吉拉特改为其他名字。

我在代码下面使用但是这只设置了第一个元素而没有检查特定的类。

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

如果你知道的话,请回复解决方案。

2 个答案:

答案 0 :(得分:7)

您可以尝试:

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

我的工作是:

  • 获取对Kendo UI ListView的引用
  • 提取列表元素的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

答案 1 :(得分: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");

如果您希望它仅在div中搜索。