2014-01-16 39 views
5

我有一个拥有3个项目的父网格,每个这些项目都有一个子网格作为细节的一部分。 当调用CHILD上的编辑事件时,我想获取父数据(masterrow),下面的代码总是获取mastergrid中的第一个项目,而不是实际的父项目单击,例如如果我编辑/在网格中为网格中的第二个项目添加一个项目,它仍然获取mastergrid数据的第一个项目。Kendo ui - 获取子网格上的父网格项(网格层次结构)添加/编辑

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

编辑有:

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

回答

5

如果e.sender是孩子网格,您只需编辑,这应该工作:

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

这似乎工作,我花了几个小时试图弄清楚,欣赏它。 – Zoinky

1

这里是你怎么能访问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; 
    } 
相关问题