我在使用MVC包装器声明的网页上有一个KendoUI ListView小部件。我需要从ListView中的所选项的dataSource获取dataItem。正如本论坛帖子所建议的那样:
http://www.telerik.com/forums/get-listview-item-id-from-datasource
我试过了:
// the ListView is bound to a dataSource with only one item
var selected = listView.select();
// when the first (only) item is selected the below returns 1
var itemIndex = selected.index();
// the index needed for the below is 0
var dataItem = listView.dataSource.view()[itemIndex];
问题是所选项的index()函数返回一个基于索引。我心想,好吧。我只需添加一行来减少索引。直到我在同一页面上打开一个KendoUI DropDownList,这才有效。尽管DropDownList与ListView无关并且拥有自己的数据源,但上面的代码selected.index()返回0.我无法解决代码问题。看起来ListView项的index()函数应该返回一个从零开始的索引,但它不会或者至少不会再激活另一个KendoUI小部件。
我正在使用2014.1.416
编辑:我认为问题必须与我的实施有关。我创建了自己的jsFiddle,它按预期工作,即index()函数返回一个基于零的索引。我实际上使用我的kendoui安装创建了一个测试应用程序,行为就像我在问题中报告的那样,即基于一个索引。我需要部署我的应用程序所以我通过将我需要的dataItem放在ListView模板中的隐藏字段中来解决这个问题,我在html中找到它。总而言之,我不认为这是一个剑道问题。当我有时间的时候,我会重新安装我们的kendoui并重新测试。