JQuery Datatables(二)

前篇讲到了Datatables的基本用法,链接地址:http://www.cnblogs.com/wumian1360/p/4263129.html

今天来实现5,6,7三点。

其实Datatables控件本身就已经带了分页属性,排序属性和筛选属性,分别是:bPaginate,bSort,bFilter,我们只需要将这三个属性设置为true,那么在Ajax刷新的时候就会在Query String Parameters有参数了。具体如下:

 1 sEcho:1                //操作次数,具体用途不是很清楚
 2 iColumns:2            //Datatables的列总数
 3 sColumns:Id,Name    //列名
 4 iDisplayStart:0        //分页开始页码
 5 iDisplayLength:10    //每页显示行数
 6 mDataProp_0:Id        //第一列映射字段
 7 sSearch_0:            //第一列筛选内容
 8 bRegex_0:false        //该字段是否使用正则
 9 bSearchable_0:true    //是否使用筛选功能
10 bSortable_0:false    //是否可以排序
11 mDataProp_1:Name    //第一列映射字段
12 sSearch_1:            //第一列筛选内容
13 bRegex_1:false        //该字段是否使用正则
14 bSearchable_1:true    //是否使用筛选功能
15 bSortable_1:true    //是否可以排序
16 sSearch:            //全文筛选
17 bRegex:false        //是否使用正则
18 iSortCol_0:0        //当前排序列索引(第一列)
19 sSortDir_0:asc        //排序为升序
20 iSortingCols:1        //排序的列数
21 _:1423311150960
Http请求参数

功能很强大啊,什么都有了,那么只需要创建对象来接受处理这些参数,然后利用对象去分别做分页,排序和筛选就可。

该处理对象类用了“冠军”的代码,具体链接:http://www.cnblogs.com/haogj/archive/2011/03/21/1990595.html

有了该对象,那么可以在具体的Controller中处理了。

代码如下:

 1 public JsonResult Get()
 2 {
 3     DataTablesRequest parm = new DataTablesRequest(this.Request);    //处理对象
 4     int totalCount = 0;        
 5     int start = parm.iDisplayStart;    //页索引
 6     int length = parm.iDisplayLength;    //页行数
 7     string order = string.Empty;    //排序
 8 
 9     //获取排序
10     if (parm.SortColumns.Count() > 0)
11     {
12         string sortField = parm.Columns[parm.SortColumns[0].Index].Name;
13         string sort = parm.SortColumns[0].Direction.ToString();
14         order = sortField + " " + sort;
15     }
16     
17     string strQuery = parm.Search;
18     string[] fields = new string[parm.iColumns];
19     //此处可以创建对象来封装全文查询字段内容,简单,个人去实现即可
20     
21     var list=XXXX.LoadPage(start,length,out totalCount,order,strQuery,fields)
22     
23     return Json(new { aaData = list, iTotalRecords = totalCount, iTotalDisplayRecords = totalCount },
24                 JsonRequestBehavior.AllowGet);
25 }
Ctroller操作

 

posted @ 2015-02-07 20:38  无眠  阅读(856)  评论(0编辑  收藏  举报