我需要为父级kendo网格创建2个子级kendo网格。我知道我可以使用detailInit创建一个kendo网格,并继续使用该方法进行更多层次的层次结构。但我需要解决的问题是让两个孩子的网格成为兄弟姐妹。
因此,结构需要看起来像这样:
父网格1
儿童网格1
儿童网格2
父网格2
儿童网格1
儿童网格2
我不知道该怎么做。我在想,我可以拥有一些带有2个div的细节模板,并为每个添加一个kendo网格。或者我可以在第一个剑道网格的末尾添加一个虚拟行,并使用该空间创建一个带有第二个子网格的div,即使这看起来很疯狂。 有没有人遇到类似的问题?
我试过这样的事情,但似乎没有用。
<script id="detail-template">
<div id="subgrid1"></div>
<div id="subgrid2"></div>
</script>
<div id="grid"></div>
<script>
$("#grid").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
],
detailTemplate: kendo.template($("#detail-template").html()),
dataBound: function() {
$("#subgrid1").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
]
});
$("#subgrid2").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
]
});
}
});
</script>
答案 0 :(得分:2)
你需要改变两件事:
请勿使用id
查找详细网格。 id
必须是全局唯一的,并且每个详细信息模板中都会复制详细网格。请改用class
。
<script id="detail-template">
<div class="subgrid1"></div>
<div class="subgrid2"></div>
</script>
在detailInit
事件期间初始化详细信息网格而不是dataBound。后者仅在主网格绑定时被触发一次。
detailInit: function(e) {
e.detailCell.find(".subgrid1").kendoGrid({
columns: [
{ field: "name" },
{ field: "age" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
]
});
e.detailCell.find(".subgrid2").kendoGrid({
columns: [
{ field: "age" },
{ field: "name" }
],
dataSource: [
{ name: "Jane Doe", age: 30 },
{ name: "John Doe", age: 33 }
]
});
},