0

您可以从子明细表中更新主表而不使主表崩溃吗?

我正在运行这段代码:

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 字段。

谢谢

4

1 回答 1

0

似乎这并不容易:

  1. 当你这样做时set,它会更新导致刷新的主网格,然后所有行都被折叠。
  2. 在之后扩展行(使用expandRowset并非易事:使用parentRow用于调用grid.expandRow(parentRow);不起作用,因为当它刷新主控时,HTML 似乎发生了变化,然后不再有效。

因此,似乎可行的是保存该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 + "']"));
}

但这并不能阻止重新加载内部网格......

于 2013-03-22T08:32:25.163 回答