Extjs 4几秒后网格去除过滤器

时间:2014-08-12 09:28:53

标签: javascript ajax extjs filter

我正在从服务器端代理过滤数据: id: 'projectStore', model: 'project', remoteSort: true, remoteFilter: true, autoLoad: true, autoSync: true, proxy: { type: 'rest', url: 'app/projects.php', reader: { type: 'json', root: 'projects' } }
这是我的过滤器代码: projectStore.clearFilter(); var comboArray = [ Ext.getCmp('projectCombo').getValue(), Ext.getCmp('statusCombo').getValue(), Ext.getCmp('typologyCombo').getValue(), Ext.getCmp('donorCombo').getValue(), Ext.getCmp('programCombo').getValue(), Ext.getCmp('regionCombo').getRawValue(), Ext.getCmp('cityCombo').getRawValue() ]; if (comboArray[0] != "All" && comboArray[0] != 'default combo value') { projectStore.filter('PRJ_TYPE', comboArray[0]); } if (comboArray[1] != "All" && comboArray[1] != 'default combo value') { projectStore.filter('PRJ_STATUS', comboArray[1]); }
                   ......等等,
当我 EXTJS 向服务器发送请求时,服务器响应是正确的,并且网格正在加载过滤数据大约2-3秒,然后它再次未经过滤!我需要对它进行过滤,直到我自己清除过滤器,我已经尝试了很多东西但是找不到解决方案。
提前谢谢你!

1 个答案:

答案 0 :(得分:0)

这些是种族状况的症状。

由于您的商店配置为autoLoad,因此在实例化商店时会加载未加载的商店。然后立即过滤它。如果商店的未过滤负载比过滤后的负载长几秒钟,您将得到您描述的内容。

解决方案是将autoLoad设置为false并手动加载存储(如果应用过滤器时尚未自动加载)。