0

我在使用 MVC 包装器声明的网页上有一个 KendoUI ListView 小部件。我需要从数据源中获取 ListView 中所选项目的数据项。正如此论坛帖子所建议的:

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() 函数返回基于 1 的索引。我想得很好,好吧。我将添加一行来减少索引。这一直有效,直到我在同一页面上打开了一个 KendoUI DropDownList。尽管 DropDownList 与 ListView 无关并且有自己的数据源,但上面的代码 selected.index() 返回 0。我无法解决代码问题。似乎 ListView 项的 index() 函数应该返回一个从零开始的索引,但它不会或至少不会,直到另一个 KendoUI 小部件被激活。

我正在使用 2014.1.416

编辑:我认为问题一定出在我的实现上。我创建了自己的 jsFiddle,它按预期工作,即 index() 函数返回一个从零开始的索引。我实际上使用我安装的 kendoui 创建了一个测试应用程序,其行为正如我在问题中报告的那样,即基于一个的索引。我需要部署我的应用程序,因此我通过将所需的 dataItem 放在 ListView 模板的隐藏字段中来解决这个问题,我在 html 中找到它。总结一下,我认为这不是剑道问题。当我有时间时,我会重新安装我们的 kendoui 并重新测试。

4

0 回答 0