我们正在使用大量的Kendo网格,其中许多都使用服务器端数据源进行虚拟滚动。
有时候,其中一个会将记录隐藏在"到达"虚拟滚动条。我们可以通过使用开发人员工具查看内部滚动条可见的内容:
当确实发生这种情况时,很难用手指 - 虫子在看似随机的地方不断出现。
任何想法如何缩小/处理它?</ p>
答案 0 :(得分:3)
尝试在网格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();
},
您需要在细节行上进行扩展和缩小。
答案 1 :(得分:1)
正如Telerik(或多或少)在docs中指出的那样,当网格具有display: none
时,对具有虚拟滚动的网格中的行高的更改将无效。
我们有一个事件处理程序可以隐藏网格并触发异步调用。异步调用成功后,我们正在更改导致不同行高的值(从一行中删除粗体)。
如图所示,这足以甩掉滚动。
答案 2 :(得分:1)
我试过virtualScrollable.refresh(),没有完全显示隐藏内容,但使用resize(true)工作
$("#yourGridId").data("kendoGrid").virtualScrollable.refresh(); //does not fully show hidden content
$("#yourGridId").data("kendoGrid").resize(true); //works
只需要从所有相关事件中调用它(仍在努力识别它们)