4

我能够在剑道网格(主网格)中获取选定的行,但我无法在详细网格中获取选定的行数据。请给我一个代码示例。谢谢,阿比

4

2 回答 2

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按钮时,它会在浏览器的控制台中显示所选行及其数据)。

于 2013-04-10T17:12:38.163 回答
0

这里有一个关于如何获取点击行的数据的更简单的例子: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);
}         
于 2014-02-07T09:50:48.770 回答