2

我有点继承了一个烂摊子,只有很短的时间来修复它。我的问题是我正在尝试修复我们使用无限滚动的商店/网格的错误。当用户尝试对网格进行排序时,会出现“加载”消息,就是这样。

我已经在服务器端设置了断点,它可以很好地回调服务器并传递正确的列,但它永远不会关闭“加载”消息。

我正在寻找在触发排序之前和之后我应该在客户端观察什么事件。我在 load、beforesync 和商店中的所有其他内容(http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.Store)中可能有 console.log 语句我需要在网格上听什么吗?

这是来自预取覆盖和 console.logs 的日志...

grid store event: ["beforeload", i, Object]
pageSize = 100
grid store event: ["beforeprefetch", i,i]
before prefetch done 
proxy.read done 
end of prefetch 
grid panel event: ["sortchange", i, i, "DESC"]
grid panel event: ["beforestatesave", i, Object]
grid store event: ["totalcountchange", 2] BufferedStore.js:22
grid store event: ["prefetch", i, Array[2], true,i]
4

1 回答 1

1

'sortchange' 事件应该在网格上触发。'beforeload' 事件应该在调用服务以获取新数据之前触发。一旦数据从服务调用返回,'load' 事件应该触发。

为了更深入地调试,在创建网格并引用它之后,例如“rolocGrid”,您可以使用 Observable 实用程序来监视网格上的所有事件及其存储。

此代码段将为每个事件写入控制台,让您深入了解过程中发生的情况:

 Ext.util.Observable.capture(rolocGrid.store, function () { console.log('grid store event:', arguments)}, rolocGrid);                                           
 Ext.util.Observable.capture(rolocGrid, function () { console.log('grid event:', arguments)}, rolocGrid);
于 2012-09-12T22:03:08.027 回答