在同一级别创建2个子级kendo网格

时间:2015-02-25 19:33:03

标签: jquery css html5 kendo-ui kendo-grid

我需要为父级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>

1 个答案:

答案 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 }
       ]  
    });  
  },

这是live working demo