我有两个网格,一个嵌入另一个网格。最初,我使用的样本看起来像:
$(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;
}
我可以做些什么来完成这项工作?感谢时间!
答案 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