是否可以从子详细信息表更新主表而不使主表折叠?

时间:2013-03-22 07:31:32

标签: telerik kendo-ui telerik-grid kendo-grid

您是否可以从子详细信息表中更新主表而不使主表崩溃?

我正在运行这段代码:

update: {
   url: "/engine.php?q=updateProjectDetails",
   dataType: "json",
   complete: function(e){
     var parentRow = $('tr').closest(".k-detail-row").prev();
     var grid = parentRow.closest("[data-role='grid']").data("kendoGrid");
     var parentDataItem = grid.dataItem(parentRow);
     parentDataItem.set("tscore", JSON.parse(e.responseText).d[0].tscore);
   }
}

当它从子表运行集合时,主表将折叠其所有子元素,仅在主表(数据源)中进行1列更新。

是否有解决此问题的方法,基本上,只保留扩展表并只更新该字段。

由于

1 个答案:

答案 0 :(得分:0)

似乎并不那么容易:

  1. 执行set时,它会更新主网格,导致刷新,然后所有行都会折叠。
  2. expandRow之后扩展行(使用set)并非易事:使用parentRow调用grid.expandRow(parentRow);不起作用,因为它刷新主时HTML似乎有所改变,然后不再有效。
  3. 那么似乎的工作原理是保存行的uid并使用它来再次查找parentRow并展开它。类似的东西:

    click: function (e) {
        var parentRow = $(e.target).closest(".k-detail-row").prev();
        //find parent grid
        var grid = parentRow.closest("[data-role='grid']").data("kendoGrid");
        //get the parent grid row DataItem
        var parentDataItem = grid.dataItem(parentRow);
        var uid = parentDataItem.uid;
        parentDataItem.set("FirstName", "OnaBai");
        grid.expandRow(grid.tbody.find("tr[data-uid='" + uid + "']"));
    }
    

    但这并不妨碍内部网格重新加载......

相关问题