Kendo UI 隐藏一些记录的网格虚拟滚动
Kendo UI Grid virtual scroll hiding some records
我们正在使用大量 Kendo 网格,其中许多网格都使用服务器端数据源设置了虚拟滚动。
有时,其中之一会隐藏虚拟滚动条 "reach" 之外的记录。我们可以通过使用开发人员工具使内部滚动条可见来查看发生了什么:
很难确定这种情况的具体发生时间 - 该错误不断出现在看似随机的地方。
有什么想法可以缩小范围/处理它吗?
正如 Telerik(或多或少)在 docs 中指出的那样,当网格具有 display: none
.[=12= 时,使用虚拟滚动更改网格中的行高将不起作用]
我们有一个事件处理程序可以隐藏网格并触发异步调用。在异步调用成功时,我们正在更改导致不同行高的值(从一行中删除了粗体)。
这足以摆脱如图所示的滚动。
尝试在网格 onDataBound 事件中重置虚拟滚动条。
onDataBound: function(evt) {
//Repaint the virtual scroll bar to make sure all rows are visible to user
var grid = evt.sender.wrapper.data("kendoGrid");
grid._rowHeight = undefined;
grid.virtualScrollable.refresh();
},
您也需要在详细信息行展开和收缩时执行此操作。
我试过 virtualScrollable.refresh(),没有完全显示隐藏内容,但使用 resize(true) 有效
$("#yourGridId").data("kendoGrid").virtualScrollable.refresh(); //does not fully show hidden content
$("#yourGridId").data("kendoGrid").resize(true); //works
只需要从所有相关事件中调用它(仍在努力识别它们)
我们正在使用大量 Kendo 网格,其中许多网格都使用服务器端数据源设置了虚拟滚动。
有时,其中之一会隐藏虚拟滚动条 "reach" 之外的记录。我们可以通过使用开发人员工具使内部滚动条可见来查看发生了什么:
很难确定这种情况的具体发生时间 - 该错误不断出现在看似随机的地方。
有什么想法可以缩小范围/处理它吗?
正如 Telerik(或多或少)在 docs 中指出的那样,当网格具有 display: none
.[=12= 时,使用虚拟滚动更改网格中的行高将不起作用]
我们有一个事件处理程序可以隐藏网格并触发异步调用。在异步调用成功时,我们正在更改导致不同行高的值(从一行中删除了粗体)。
这足以摆脱如图所示的滚动。
尝试在网格 onDataBound 事件中重置虚拟滚动条。
onDataBound: function(evt) {
//Repaint the virtual scroll bar to make sure all rows are visible to user
var grid = evt.sender.wrapper.data("kendoGrid");
grid._rowHeight = undefined;
grid.virtualScrollable.refresh();
},
您也需要在详细信息行展开和收缩时执行此操作。
我试过 virtualScrollable.refresh(),没有完全显示隐藏内容,但使用 resize(true) 有效
$("#yourGridId").data("kendoGrid").virtualScrollable.refresh(); //does not fully show hidden content
$("#yourGridId").data("kendoGrid").resize(true); //works
只需要从所有相关事件中调用它(仍在努力识别它们)