2014-01-16 7 views
5

Ich habe ein Elterngitter, das 3 Elemente hat, jedes dieser Elemente hat ein Untergitter als Teil der Details. Wenn edit Ereignis auf der CHILD aufgerufen wird, würde ich gerne die Daten für die Eltern (masterrow) erhalten, unter Code erhält immer das erste Element im Mastergrid und nicht die tatsächlichen Eltern der Elemente angeklickt, zum Beispiel, wenn ich bearbeite/Fügen Sie ein Element im Raster für das zweite Element im Master-Grid hinzu, es erhält immer noch das erste Element der Mastergrid-Daten.Kendo ui - Übergeordnetes Grid-Objekt (Gitterhierarchie) auf Kind hinzufügen/bearbeiten

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

bearbeiten hat:

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

Antwort

5

Wenn e.sender Kind Gitter ist, die Sie gerade bearbeiten, sollte diese Arbeit:

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

Das scheint zu funktionieren, verbrachte ich Stunden versuchen, herauszufinden, schätzen es. – Zoinky

1

Hier ist, wie können Sie Zugang der Parent Row zusammen mit seiner 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; 
    }