Kendo ui - 在子添加/编辑时获取父网格项(网格层次结构)

Posted

技术标签:

【中文标题】Kendo ui - 在子添加/编辑时获取父网格项(网格层次结构)【英文标题】:Kendo ui - Get Parent Grid Item (Grid Hierarchy) on child add / edit 【发布时间】:2014-02-04 19:50:07 【问题描述】:

我有一个包含 3 个项目的父网格,每个项目都有一个子网格作为详细信息的一部分。 当调用 CHILD 上的编辑事件时,我想获取父级(masterrow)的数据,下面的代码总是获取主网格中的第一个项目,而不是单击项目的实际父级,例如,如果我编辑/添加网格中的一项为主网格中的第二项,它仍然获取主网格数据的第一项。

 var parentData = $("#gridRoomTypes").data("kendoGrid").dataItem(e.container.closest("tr"));

编辑有:

 e.sender (child grid), e.container, e.model "gridRoomTypes" is my master grid

【问题讨论】:

【参考方案1】:

如果 e.sender 是您刚刚编辑的子网格,这应该可以工作:

var parentData = $("#gridRoomTypes").data("kendoGrid").dataItem(e.sender.element.closest("tr").prev());

【讨论】:

这似乎奏效了,我花了好几个小时试图弄清楚,感谢它。【参考方案2】:

您可以通过以下方式访问Parent Row 及其model

.....
.......

$("#YOUR_DETAIL_GRID").kendoGrid(
    ....
    ......
    //ON CLICK ADD/EDIT BUTTON FOR CHILD ROWS
    edit: function(e) 

        var detailGridWrapper = this.wrapper;
        // GET PARENT ROW ELEMENT
        var parentRow = detailGridWrapper.closest("tr.k-detail-row").prev("tr");
        // GET PARENT GRID ELEMENT
        var parentGrid = parentRow.closest("[data-role=grid]").data("kendoGrid");
        // GET THE PARENT ROW MODEL
        var parentModel = parentGrid.dataItem(parentRow);

        // ACCESS THE PARENT ROW MODEL ATTRIBUTES
        var some_parent_row_attribute = parentModel.some_attribute;
    

【讨论】:

以上是关于Kendo ui - 在子添加/编辑时获取父网格项(网格层次结构)的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI - 如何在编辑时使特定字段只读,同时在剑道网格中创建可编辑?

编辑网格时,如何按行禁用特定字段? Kendo UI ASP.Net MVC 包装器

Kendo UI网格行中弹出窗口中的文件附件

具有级联下拉列表的 Kendo UI 网格

记住在 Kendo-UI 中刷新时扩展的细节网格

在Kendo UI网格中内联编辑?