在extjs GridFilters.js中,我们有:
onStateChange : function (event, filter) {
......
...
if ((this.autoReload || this.local) && !this.applyingState) {
//alert('Firing reload');
this.deferredUpdate.delay(this.updateBuffer);
}
}
我认为这意味着每当
`this.deferredUpdate.delay(this.updateBuffer);`
已执行,将调用reload
函数。但通过发出警报,我发现事实并非如此。尽管
alert('Firing reload');
多次弹出。我在这个例子中使用了日期过滤器。
为什么会这样?调用deferredUpdate.delay
是不是按照GridFfilters.js类自动触发重新加载?
答案 0 :(得分:0)
GridFilter正在使用Ext的DelayedTask延迟方法(here),该方法取消任何挂起的延迟方法并将新方法排队。因此,您将收到多个警报,但只有一次刷新。