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操作

 

你可能感兴趣的:(datatables)