datagrid - 设置“view”属性时,如何防止 jquery easyui scrollview 扩展崩溃?
问题描述
我正在制作一个报告系统,其中一些报告的大小只有几行,而其他报告可能有数十万行或更多。为了防止数据过多导致极度滞后和崩溃,我尝试将 datagrid-scrollview 扩展集成到页面中。
但是,这样做会阻止数据网格加载任何数据,即使它是从服务器检索的。挖了一下,我发现这是因为要使用scrollview,我们必须将datagrid的“view”选项设置为“scrollview”。此选项已设置并包含一堆方法。将其设置为 scrollview 会删除所有这些方法,并且在 jquery.easyui.min.js 的第 11188 行(可能因不同的版本和扩展而异?)其中一种方法,“render”,在调用堆栈的某处被调用“加载数据”。
function _7a0(_7e6,data){
var _7e7=$.data(_7e6,"datagrid");
var opts=_7e7.options; // at this line, opts already contains "view"
...
...
...
if(opts.view.onBeforeRender){
opts.view.onBeforeRender.call(opts.view,_7e6,data.rows);
}
opts.view.render.call(opts.view,_7e6,dc.body2,false); // this line fails
opts.view.render.call(opts.view,_7e6,dc.body1,true);
...
...
...
} // function _7a0 ends
我的情况的其他背景:
- easyui 版本是 1.9.4
- datagrid-scrollview 版本是 1.0.1(在撰写本文时,当前最新版本可用)
- 我们使用的其他扩展
- 数据网格单元格编辑
- 数据网格过滤器
- 数据网格导出
- jquery.edatagrid
是否可以使此设置与 datagrid-scrollview 一起使用?是什么导致“视图”已经被填充?
解决方案
推荐阅读
- flutter - DartPad:如果控制台只打印“脚本错误”,如何获取更多信息?
- sqlite - SQLite 每日计算的产品交易总和
- javascript - JavaScript 中的语句 vs 表达式 vs 赋值
- javascript - 嵌套javascript对象的编码路径
- java - Java:索引 0 超出长度 0 的范围
- javascript - 如何检查变量内容是否更改
- flutter - 如何在 Firestore 中更新此内容?
- python - SQLAlchemy 错误绑定参数 2 - 可能不受支持的类型
- python - 2D数组和3D数组的乘法
- unity3d - 如何在 Unity 中向 4 名玩家发牌?