首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

如何实现 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 端的数据筛选进行详细的解析。
返回列表