【问题标题】:Can you update the master table from the sub-detail table without having the master table collapse?您可以从子明细表中更新主表而不使主表崩溃吗?
【发布时间】:2013-03-22 07:31:32
【问题描述】:

能否在不折叠主表的情况下从子明细表更新主表?

我正在运行这段代码:

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    好像没那么容易:

    1. 当您执行set 时,它会更新主网格导致刷新,然后所有行都被折叠。
    2. set 之后扩展行(使用expandRow)并非易事:使用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 + "']"));
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-20
      • 2022-11-24
      • 2014-01-08
      • 2011-05-23
      • 2010-09-23
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多