这是小提琴 https://fiddle.sencha.com/?fiddle=1ahm#fiddle/1ahm
经典主题与几乎相同的代码工作正常。
答案 0 :(得分:3)
这是一个你应该在官方论坛及时报告的sencha bug。
store.getRange()
。 ("The starting index. Defaults to zero."/"The ending index. Defaults to the last record. The end index is included.")bufferedStore.getRange()
没有明确地告诉我们它可以在没有参数的情况下被调用,但我们可以安全地假设它应该是,因为它覆盖了父类的函数定义。至少现代网格是这样的。bufferedStore.getRange()
然后使用rangeCached
和start
调用私有函数end
(两者都未定义)rangeCached
显然希望这两个是数字,或者为什么他们甚至应该在start === 0 ? 0 : start - 1
使用严格相等运算符?如果只是这个故障,你可以用覆盖修复它,例如:
Ext.define('MyBufferedStoreOverride',{
override:'Ext.data.BufferedStore',
getRange:function(start, end, options) {
if(!Ext.isNumber(start)) start = 0;
if(!Ext.isNumber(end)) end = this.getCount();
me.callOverridden([start, end, options]);
}
})
但我认为Sencha从来没有使用BufferedStore
测试他们的现代网格,因为一旦你解决了第一个bug,就会抛出下一个错误。
答案 1 :(得分:1)
尝试将高度设置为网格,并从'Ext.grid.GridPanel'而不是'Ext.grid.Grid'获取网格扩展。
答案 2 :(得分:1)
在 ExtJS 6.6.0 中,bufferedStore
的{{3}}表示,对于现代工具包,必须使用Ext.data.virtual.Store
。