Javascript 将筛选器应用于“我的存储”会导致网格临时刷新不正确的数据集
我有一个非常简单的界面,包含一个网格、一个搜索字段、一个搜索按钮和一个来自JSON数据源的数据存储 网格的默认状态是显示给定用户的所有数据,并在搜索字段中输入一个术语,然后单击搜索按钮应用一个过滤器,然后重新执行一个调用以获取新的JSON结果集,并将该数据放入网格中。我是这样做的:Javascript 将筛选器应用于“我的存储”会导致网格临时刷新不正确的数据集,javascript,datagrid,extjs,filter,extjs4,Javascript,Datagrid,Extjs,Filter,Extjs4,我有一个非常简单的界面,包含一个网格、一个搜索字段、一个搜索按钮和一个来自JSON数据源的数据存储 网格的默认状态是显示给定用户的所有数据,并在搜索字段中输入一个术语,然后单击搜索按钮应用一个过滤器,然后重新执行一个调用以获取新的JSON结果集,并将该数据放入网格中。我是这样做的: quick_search: function(search_term, store) {
quick_search: function(search_term, store) {
store.clearFilter(true);
store.filter([{property: 'filter', value: search_term}]);
}
单击“搜索”按钮时,以下功能可以正常执行,但我看到了这种情况:
- 用户从网格中的100条记录开始
- 用户搜索“测试”(有25条记录)
- 相应的25条记录显示在网格中
- 然后用户搜索“堆栈”(45个结果)
- 网格立即显示原始的100条记录,然后显示正确的45条记录
这是以搜索方式动态刷新网格数据的正确模式吗?我是否错误地清除了过滤器?找到了解决方案。。。以前的解决方案试图运行load,导致多个请求返回到我的Web服务器,获取多个结果集(首先是不正确的结果集,然后是正确的结果集)
quick_search: function(search_term, store) {
store.filters.clear();
store.filter([{property: 'filter', value: search_term}]);
}