1

这是小提琴 https://fiddle.sencha.com/?fiddle=1ahm#fiddle/1ahm

具有几乎相同代码的经典主题可以正常工作。

4

3 回答 3

3

这是一个煎茶bug,您应该及时在官方论坛报告。

  • store.getRange()可以在没有 start 和 end 参数的情况下调用。( "起始索引。默认为零。"/"结束索引。默认为最后一条记录。包括结束索引。" )
  • bufferedStore.getRange()没有明确告诉我们它可以在没有参数的情况下调用,但我们可以安全地假设它应该隐含,因为它覆盖了父类的函数定义。至少现代网格是这样认为的。
  • bufferedStore.getRange()rangeCached然后用startand调用私有函数end(两者都未定义)
  • rangeCached显然希望这两个是数字,或者为什么他们甚至应该使用严格的相等运算符 at 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.

于 2016-05-18T13:17:39.103 回答
2

尝试将高度设置为网格并让您的网格从“Ext.grid.GridPanel”而不是“Ext.grid.Grid”扩展。

于 2016-09-24T21:53:49.597 回答
1

ExtJS 6.6.0文档bufferedStore说,对于现代工具包,您必须使用Ext.data.virtual.Store.

于 2019-01-14T17:08:36.710 回答