【问题标题】:extjs datefilter questionextjs datefilter 问题
【发布时间】:2011-03-08 23:30:53
【问题描述】:

在 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 函数将被调用。但是通过发出警报,我发现情况并非如此。 reload 只被调用一次),尽管

alert('Firing reload'); 

多次弹出。我在这个例子中使用了一个日期过滤器。

为什么会这样?对deferredUpdate.delay 的调用不会根据 GridFfilters.js 类自动触​​发重新加载吗?

【问题讨论】:

    标签: extjs


    【解决方案1】:

    GridFilter 正在使用 Ext 的 DelayedTask 延迟方法 (here),该方法取消任何待处理的延迟方法并将新方法排队。因此,您会收到多个警报,但只有一次刷新。

    【讨论】:

    • 从链接中,我得到::“DelayedTask 类提供了一种方便的方法来“缓冲”方法的执行,* 执行 setTimeout,其中新的超时取消旧的超时。调用时, * 任务在执行前将等待指定的时间段。如果在该时间段内, * 再次调用任务,将取消原来的调用。这样继续下去, * 每次迭代只调用一次函数。但即使通过设置 updateBuffer =0,我也没有得到多个刷新。
    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 2013-06-07
    • 2011-02-24
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多