我能够在kendo网格(主网格)中获取所选行,但我无法在详细网格中获取所选行数据。请提供代码示例。 谢谢, ABHI
答案 0 :(得分:7)
就像主网格一样。将childgrid
作为与详细信息对应的网格,执行:
var row = childgrid.select();
var data = childgrid.dataItem(row);
console.log("row", row);
console.log("data", data);
我将master
网格定义为:
$("#grid").kendoGrid({
...
detailInit: detailInit,
...
});
当扩展主网格中的行时,使用以下函数创建细节网格:
function detailInit(e) {
childgrid = $("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.kendoui.com/service/Northwind.svc/Orders"
},
serverPaging: true,
serverSorting: true,
serverFiltering: true,
pageSize: 5,
filter: { field: "EmployeeID", operator: "eq", value: e.data.EmployeeID }
},
scrollable: false,
sortable: false,
selectable: true,
pageable: true,
columns:
[
{ field: "OrderID", width: "70px" },
{ field: "ShipCountry", title: "Ship Country", width: "110px" },
{ field: "ShipAddress", title: "Ship Address" },
{ field: "ShipName", title: "Ship Name", width: "200px" }
]
}).data("kendoGrid");
}
在此处运行示例:http://jsfiddle.net/OnaBai/2M86L/(当您点击Show
按钮时,它会在浏览器的控制台中显示所选行及其数据。
答案 1 :(得分:-1)
这是一个更简单的示例,介绍如何获取所点击行的数据:http://jsfiddle.net/Corne/AQqMH/5/
这是魔术发生的代码:
change: function (arg) {
var selectedData = this.dataItem(this.select());
// selectedData now points to the selected dataSource item!
alert("Clicked id: " + selectedData.id);
}