我是 ExtJS4 的新手。我在我们的项目中使用分页工具栏。我正在使用清除网格
grid.getStore().removeAll()
现在问题在于分页工具栏。如果我们单击按钮,那么它正在检索商店。我的疑问是如何清除分页工具栏中的商店?
请帮我。
谢谢你,
库沙尔
我只是花了几个小时研究这个东西,想分享一下,以防有人还在寻找它。看起来 Ext.toolbar.Paging 没有监听在 removeAll() 方法上触发的 store 的 clear 事件。我的解决方案是对其进行子类化并覆盖 getStoreListeners 以将 onLoad 内部函数绑定到 clear 事件。顺便说一句,我正在使用 ExtJS 4.1。
Ext.define('MyApp.ClearablePagingToolbar', {
extend: 'Ext.toolbar.Paging',
alias: 'widget.clearablepagingtoolbar',
getStoreListeners: function () {
var listeners = this.callParent();
Ext.apply(listeners, {
clear: this.onLoad
});
return listeners;
}
});
您可以通过在网格中引用 clearablepagingtoolbar 来使用它,如下所示:
dockedItems: [{
xtype: 'clearablepagingtoolbar',
dock: 'bottom',
displayInfo: true,
store: this.getSearchResultStore()
}]
首先,您是否为网格和工具栏配置了相同的存储?如果是,您应该尝试清除商店本身,而不是使用 grid.getStore() (例如 myStore.removeAll() )
如果您的网格和分页工具栏使用相同的商店,您的分页工具栏将正常工作。如果你使用单独的存储(这是不好的编码风格),你需要调用这个分页面板的存储同步方法来同步数据。