如何实现 Gridx 在 Server 端的数据筛选(1)
 
- UID
- 1066743
|

如何实现 Gridx 在 Server 端的数据筛选(1)
Gridx 简介Gridx 是 Dojo Grid 的一个扩展开源项目。相对而言,Gridx 具有更高的稳定性和更好的性能。Gridx 是模块化设计的,可以通过添加相应的模块来获取对应的功能。数据筛选是其一个常用的模块,通过在 Grid 的定义中加入数据筛选模块,Grid 就可以获得数据筛选功能。Gridx 的数据筛选功能分为 Client 端与 Server 端两种形式,本文将介绍下这两种数据筛选形式,以及如何具体实现 Server 端的数据筛选。
如何实现 Client 端的数据筛选当一个报表的数据量很大的时候,用户通常会需要对其进行一些数据筛选,然后再进行后续的一些操作。通过在 Gridx 中加入 Filter 模块,可以实现数据筛选的功能。不过加入 Filter 模块只能对报表进行数据筛选操作没有相关界面,我们可以通过添加一个可供用户操作的数据筛选界面模块,如 FilterBar 来实现用户对报表添加数据筛选条件的操作。
清单 1. 添加 Filter 模块1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| require([
......
"gridx/modules/Filter",
"gridx/modules/filter/FilterBar",
......
], function(..., Filter, FilterBar,...){
......
var grid = new Grid({
......
modules: [
......
Filter,
FilterBar,
......
]
});
......
});
|
利用 Client 端筛选数据的不足以上的数据筛选是在 Client 端进行的,它只能对已经加载的数据进行过滤。如果报表是设计成延迟加载,比如加入分页模块,那么使用 Client 端的数据筛选方式,就需要 Grid 发送请求到 Server 端,将其余所有分页的数据全部取回到 Client 端后,再根据 Filter 条件来过滤数据。如果报表的数据量很大的话,那么就会有很多分页,这样进行一次数据筛选,就需要往 Server 端发送很多请求将所有数据取出,对服务器端的压力就比较大。而且由于已经把所有的数据都取到了 Client 端,报表就失去延迟加载的优势了。下面我们将会对 Sever 端的数据筛选进行详细的解析。 |
|
|
|
|
|