Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ExtJS中清除过滤器后显示网格中的所有行_Extjs_Extjs4_Extjs Grid_Extjs Stores - Fatal编程技术网

在ExtJS中清除过滤器后显示网格中的所有行

在ExtJS中清除过滤器后显示网格中的所有行,extjs,extjs4,extjs-grid,extjs-stores,Extjs,Extjs4,Extjs Grid,Extjs Stores,我有一个数据存储和一个网格。我在商店中添加了过滤器,当我在网格中看到结果时,它们可以正常工作。但是一旦我禁用了所有过滤器,或者从我的存储中清除了它们,我就想查看网格中的所有行,而不必从web服务重新加载它们,这是一项繁重的任务。所有数据都已从服务中提取,无需重新加载 我该怎么做?商店里有什么功能吗?我怀疑你的网格视图没有刷新。试试这个: mygrid.getView().refresh()已经有一个类似的问题,答案正确。简言之,在将remoteFilter设置为false后,需要调用不带参数的f

我有一个数据存储和一个网格。我在商店中添加了过滤器,当我在网格中看到结果时,它们可以正常工作。但是一旦我禁用了所有过滤器,或者从我的存储中清除了它们,我就想查看网格中的所有行,而不必从web服务重新加载它们,这是一项繁重的任务。所有数据都已从服务中提取,无需重新加载


我该怎么做?商店里有什么功能吗?

我怀疑你的网格视图没有刷新。试试这个:


mygrid.getView().refresh()
已经有一个类似的问题,答案正确。简言之,在将remoteFilter设置为false后,需要调用不带参数的filter方法:

store.remoteFilter = false;
store.clearFilter();
store.remoteFilter = true;
store.filter();

这里有一个JSFIDLE:

让我直截了当地说,您在第一次加载时从web服务加载所有数据,这可能意味着您已经将存储设置为一个
ajax
代理?但是,如果您一下子加载了所有内容,为什么不直接调用Ajax,并将您的存储变成内存存储呢?您是否依赖后端进行过滤/排序?是的,我一次通过一个http请求加载服务中的所有数据。它有有限数量的实体,所以可以这样做。我在本地过滤所有数据,只需更改过滤器。而且商店已经是内存了。不,我不依赖后端进行过滤/排序OK,所以听起来你可以按照我说的做。。。或者我还缺少其他一些信息?我应该调用什么函数来再次查看网格中的所有数据?store.load()?我在一个全局变量中有所有数据。我尝试了store.filter(),但没有参数,它不起作用。我尝试了它。商店是空的。这就是为什么我在网格中看不到任何东西。可能是因为我使用loadData()而不是load()?没有使reload()工作的初始设置?我相信这就是它的作用,不是吗?所以您不必直接设置它们的公共变量
remoteFilter
。@incutonez抱歉,但似乎不是。这里有一个例子。但是如果取消注释,代码就开始工作了。如果我理解正确的话,clearFilter只是从存储中删除过滤器,但不刷新数据快照。Filter方法基于一组新的筛选器(在本例中为空筛选器)和remoteFilter变量来计算新快照,以防止存储从远程服务器获取数据。文档状态“对于远程筛选存储,这意味着筛选器集合已清除,但存储不会从服务器重新加载”,这是指如果您向clearFilter提供
true
。否则,它应该重新加载数据。。。除非我没有完全理解这个问题。