繁体   English   中英

如何在ExtJS 5中使用分页过滤网格数据

[英]How to filter grid data with paging in ExtJS 5

我正在尝试将筛选器应用于具有活动分页的数据存储。 我目前正在使用静态数据存储,而不是使用代理。 但是,该过滤器将应用于数据网格中显示的当前页面,而不是整个数据存储。

情况1:我尝试停用分页,应用过滤器,然后再次激活分页。 但是,该过滤器对于当前页面(而不是整个数据存储)处于活动状态。

情况2:在应用情况1之前,我尝试将排序器添加到数据存储中。 它也不起作用。

有什么方法可以过滤所有数据并在分页中显示过滤结果?

注意:我尝试在Sencha Fiddle上编写类似的代码,但是在该Fiddle上未分页, 有示例代码

  1. 静态存储数据不支持分页,因为分页是由代理和读取器完成的。 但是,您可以使用enablePaging:truepagingmemory代理(ExtJS 4)或memory代理(ExtjS 5/6)上定义数据。

  2. 对于ajax代理,分页是通过将页面大小和开始属性发送到服务器来完成的。 如果服务器忽略这些属性,并且将其在数据库中的所有内容放回服务器,则分页将不适用于ajax代理。 服务器可能只发回应在网格中可见的记录。

  3. 请注意, ajax代理还必须传递totalCount才能使分页正常工作。 要查看分页工具栏是否正常运行,请添加到您的商店: totalCount:25 而且,您的pageingToolbar向您显示了五个页面。 其他所有内容仍无法正常工作,因为请参阅1.再次删除totalCount ,它将对您没有任何帮助。

  4. 通常, totalCount由服务器交付,并由阅读器提供给商店:如果服务器在totalProperty属性中设置的位置上报告了totalCount,则JsonReader交付totalCount

  5. 如果使用分页,并且希望始终看到25个应用了正确的排序和过滤的条目,则必须使用remoteSort:trueremoteFilter:true 如果是AjaxProxy ,则必须在服务器端实施过滤和排序。

  6. 您在客户端应用的过滤器将始终在页面调度后应用,因为页面调度发生在服务器端。 它们不能属于设置远程过滤器的同一商店的一部分,因此您必须将网格绑定到以原始商店为源的ChainedStore。 然后将客户端筛选器应用于链接的商店,将远程筛选器应用于原始的商店。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM