2016-11-26 62 views
0

我有一个kendoListView绑定到具有多个字段的对象列表。获取绑定到Kendo项目的对象ListView

<div id="lstAllItems"></div> 

<script type="text/x-kendo-tmpl" id="itemTemplate">  
    <div> 
     <label><input type="checkbox"/>#: Name#</label> 
    </div> 
</script> 

<script> 

    var itemsList = [{Name : "ABC", Age : 23, EmpID : 1}, 
     {Name : "PQR", Age : 25, EmpID : 2},  
     {Name : "XYZ", Age : 23, EmpID : 3} 
    ]; 

    var _dataSource = new kendo.data.DataSource({ 
     data: itemsList 
    }); 

    $("#lstAllItems").kendoListView({ 
     dataSource: _dataSource, 
     template: kendo.template($("#itemTemplate").html()) 
    }); 

</script> 

现在我想要获取该列表中的所有选中项。我已经能够做到这一点使用下面的代码:

$("#lstAllItems input").each(function() { 
    if (this.checked) 
    { 

    } 
}); 

现在的问题是,我无法找到一种方式来获得绑定到该输入整个对象即我希望得到绑定到此检查输入的整个对象它不仅包含Name,还包含EmpID和年龄(绑定对象的所有属性)。

这是怎么实现的?有没有可能在Kendo列表视图中绑定物件?

回答

1

使用ListView的dataItem方法并传递对应于该项目的父项div元素。

$("#lstAllItems input").each(function() { 
    if (this.checked) 
    { 
     var listView = $("#lstAllItems").data("kendoListView"); 
     var listViewItem = listView.dataItem($(this).closest("div")); 
    } 
}); 

listViewItem将是一个Kendo UI Model对象。

+1

完美答案! 这正是我正在寻找的东西...非常感谢! – user2091061