当我尝试动态设置网格过滤器列表时,我遇到了一个奇怪的问题。
让我通过我的代码片段来解释
我有一列过滤器列表定义为
{
text : 'Client',
dataIndex : 'topAccount',
itemId : 'exTopAccount',
filter: {
type: 'list',
options:[]
}
}
我在“viewready”中从商店初始化列表
viewready: function(cmp,eOpts){
cmp.getHeaderCt().child('#exTopAccount').initialConfig.filter.options = clientsStore.collect('topAccount');
}
===> 效果很好
现在,当用户移动到下一页时,我必须根据记录构建新的客户端商店。因此,我在分页的“更改”事件中建立商店
listeners: {
'change' :function( toolbar, pageData, eOpts ) {
var store = Ext.StoreManager.get('ExceptionRecords');
clientsStore.removeAll(true);
store.each(function(record){
if(clientsStore.findRecord('topAccount',record.data.topAccount.trim()) == null ) {
clientsStore.add({topAccount: record.data.topAccount.trim()})
}
})
Ext.getCmp('exceptionGridContainer').view.refresh;
Ext.getCmp('exceptionGridContainer').view.getHeaderCt().doLayout;
console.log(clientsStore);
Ext.getCmp('exceptionGridContainer').view.getHeaderCt().child('#exTopAccount').initialConfig.filter.options = clientsStore.collect('topAccount');
}
}
我现在可以在 clientsStore 中看到新数据。但是网格过滤器列表没有更新。仍然显示旧数据。我尝试了刷新、布局等。没有什么帮助
任何帮助将不胜感激
谢谢塔拉汉