Kendo 网格 table 展开删除 table 数据
Kendo grid table expand removes table data
我们有一个函数用于扩展 kendo 网格中的所有行(如果它们有子网格)。目前,这是通过箭头指示的。这个箭头在代码中用于搜索,所以它知道如何展开网格。
(function () {
$(".k-grid-header .k-hierarchy-cell").html(
"<div>" +
"<span class=\"k-icon k-i-arrow-60-right grid-expand pointer link\" title=\"Expand all\"></span>" +
"</div>");
$(".grid-expand").click(expandGridDetails);
});
function expandGridDetails() {
var grid = $(".k-grid").data("kendoGrid");
grid.expandRow(grid.tbody.find(".k-master-row").has(".k-hierarchy-cell a.k-icon"));
}
对于其中一个网格,此功能完美运行,但对于第二个网格,此函数不会扩展行,而是删除 detailRow 中表示的一些数据。
这个问题好像是在grid.expand()方法一执行就出现了。如果我执行任何其他操作,例如 grid.tbody.find 语句,table 将保持不变。使用 grid.collapseRow() 会导致同样的事情发生,不是执行而是删除一些数据。主行在整个过程中保持完整。
有没有人知道这个错误的可能原因是什么?
一位高级程序员向我解释了我做错了什么,我用他的解决方案修复了它。使用 $(".grid-expand") 代码每次都会调用第一个网格,即使在另一个网格中选择了一行之后也是如此。解决方案是保存一个全局变量,该变量跟踪当前正在查看的网格。 Backdraw 就是这个全局变量在同一个页面被同一个用户多次打开时会出问题,但是我觉得没有理由优先解决这个小问题。
另一个解决方案是使用
function expendGridDetails(e) {
var grid = e.sender;
}
缺点是 e 变量不会自动发送到每个函数。我还不确定是什么决定了他们是否收到或不收到此变量,但它比使用可能未设置为正确值的全局变量更节省。 e.sender 向调用函数的网格询问其名称。或者至少这是我从给我的解释中所理解的广义内容。
我们有一个函数用于扩展 kendo 网格中的所有行(如果它们有子网格)。目前,这是通过箭头指示的。这个箭头在代码中用于搜索,所以它知道如何展开网格。
(function () {
$(".k-grid-header .k-hierarchy-cell").html(
"<div>" +
"<span class=\"k-icon k-i-arrow-60-right grid-expand pointer link\" title=\"Expand all\"></span>" +
"</div>");
$(".grid-expand").click(expandGridDetails);
});
function expandGridDetails() {
var grid = $(".k-grid").data("kendoGrid");
grid.expandRow(grid.tbody.find(".k-master-row").has(".k-hierarchy-cell a.k-icon"));
}
对于其中一个网格,此功能完美运行,但对于第二个网格,此函数不会扩展行,而是删除 detailRow 中表示的一些数据。
这个问题好像是在grid.expand()方法一执行就出现了。如果我执行任何其他操作,例如 grid.tbody.find 语句,table 将保持不变。使用 grid.collapseRow() 会导致同样的事情发生,不是执行而是删除一些数据。主行在整个过程中保持完整。
有没有人知道这个错误的可能原因是什么?
一位高级程序员向我解释了我做错了什么,我用他的解决方案修复了它。使用 $(".grid-expand") 代码每次都会调用第一个网格,即使在另一个网格中选择了一行之后也是如此。解决方案是保存一个全局变量,该变量跟踪当前正在查看的网格。 Backdraw 就是这个全局变量在同一个页面被同一个用户多次打开时会出问题,但是我觉得没有理由优先解决这个小问题。
另一个解决方案是使用
function expendGridDetails(e) {
var grid = e.sender;
}
缺点是 e 变量不会自动发送到每个函数。我还不确定是什么决定了他们是否收到或不收到此变量,但它比使用可能未设置为正确值的全局变量更节省。 e.sender 向调用函数的网格询问其名称。或者至少这是我从给我的解释中所理解的广义内容。