问题描述
我正在使用 config.module
.rule('resolveNodeModules')
.test(/\.m?jsx?$/)
.include.add(/node_modules\/(vue2-editor|quill|quill-delta)\/.*/)
.end()
.use('babel-loader')
.loader('babel-loader')
。我在一次调用中检索所有数据,假设我在第 3 页,同时过滤数据,它从整个数据中搜索数据,并自动转到“第 1 页”,我需要一种方法来过滤当前页面中的数据仅和不要分页到第 1 页,它应该只在当前页面上。有没有办法做同样的事情?提前致谢!!!
编辑:我在服务器端分页中也面临同样的问题。
解决方法
对igx-grid
中任意一列的数据进行过滤并不是只对特定页面数据起作用,而是对整个数据集起作用。如果只需要过滤当前页面内的数据,那么当前页面内的数据会小于页面大小,并且网格中的数据状态一般会不同步。
为了通过服务器端分页获取当前页面上的当前过滤数据,您可以从网格中提取 filteringExpressions
并将它们在分页请求中发送到您的后端服务。然后首先过滤数据并随后对其进行分页并仅返回页面大小。在伪代码中,这将类似于:
data.Where(d => d.something meets condition).Skip(page).Take(pageSize)
现在执行客户端过滤时网格确实会重置页面,因为过滤数据时,页面数量减少,用户所在的当前页面可能不再存在。
可以在此处找到 igx-grid
中服务器端分页和过滤的示例:
https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/remote-data-operations