是否可以使用Kendo UI在变量中设置父网格的嵌套网格?

时间:2014-04-21 14:07:56

标签: jquery kendo-ui kendo-grid

我有两个网格,一个嵌入另一个网格。最初,我使用的样本看起来像:

$(document).ready(function() {
 var elementMasterInfo = $("#gridMasterInfo").kendoGrid({
     dataSource: {
         type: "odata",
         transport: {
             read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees"
                    },
         pageSize: 6,
     },
     height: 430,
     detailInit: detailInit,
     columns: [ ... columns here... ]
 });     
});

function detailInit(e) {
    $("<div/>").appendTo(e.detailCell).kendoGrid({
        dataSource: dataSource,
        columns: [ ... columns here ... ]
    })
}

这很好用。我想知道的是如何在第一个变量中设置嵌入网格,然后将其附加到detailInit函数中...就像这样(它不起作用):

var innerGrid = $("#divInnerTasks").kendoGrid({
    dataSource: dataSource,
    columns: [ ... columns here ... ]
});

function detailInit(e) {
    $("<div/>").appendTo(e.detailCell).innerGrid;        
}

我可以做些什么来完成这项工作?感谢时间!

2 个答案:

答案 0 :(得分:1)

由于我的原始评论已经被提议作为答案,我可以通过一些其他信息证明这一点。

为父网格的每一行创建一个嵌套网格,因此您不能在原始问题中使用常量标识符(#divInnerTasks)作为占位符。

此外,详细信息的dataSource用于依赖父行的内容。我们的想法是内部网格的数据是可变的,并且每个父行的数据都会发生变化。

示例:父网格是发票,内部网格是每个销售产品的描述,包括金额和价格。

但细节不一定是另一个网格,您只能将一些列显示为原始数据,然后将其余信息用作详细信息。

示例:网格包含您的联系人。在父行中,您只显示名字和姓氏,在详细信息视图中显示电话和电子邮件地址(http://jsfiddle.net/OnaBai/wPedb/)。

var grid = $("#grid").kendoGrid({
    dataSource: ds,
    editable  : false,
    pageable  : true,
    detailInit: function(e) {
        // This is actually not the best way of showing data that is part of the
        // original row, this is just for example
        var template = kendo.template ($("#template").html())(e.data);
        e.detailRow.html(template);
    },
    columns   :
    [
        { field: "FirstName", width: 90, title: "First Name" },
        { field: "LastName", width: 200, title: "Last Name" },
        { field: "City", width: 200 }
    ]
}).data("kendoGrid");

答案 1 :(得分:0)

不确定我理解你的问题。为父网格的每一行创建一个嵌套网格,因此您不能像建议的那样使用常量标识符(#divInnerTasks)。接下来,dataSource的细节是什么,它始终是相同的数据吗?我们的想法是内部网格的数据是可变的,取决于每个父行.- OnaBai