jQuery插件DataTable使用方法详解(.Net平台)(2)

/****************Controller后台代码******************/ public ActionResult Search(DataTable dt,string nickname) { int total; int pageSize = dt.length; int pageIndex = dt.pageIndex; IQueryable<Model.UserInfo> userInfoIq=CurrentBllSession.UserInfoBll.GetIQueryableBySearchPage(pageIndex,pageSize,out total,nickname); List<Model.UserInfo> userInfoList = userInfoIq.ToList(); dt.recordsTotal = total; dt.recordsFiltered = total ; dt.data = userInfoList; return Json(dt); } /**************************Bll服务代码************************/ public IQueryable<UserInfo> GetIQueryableBySearchPage(int pageIndex,int pageSize,out int total,string nickname) { IQueryable<UserInfo> userInfoIq= CurrentDal.GetIQueryable(); if (!string.IsNullOrEmpty(nickname)) { userInfoIq=userInfoIq.Where(a => a.Nickname.Contains(nickname)); } total=userInfoIq.Count(); userInfoIq=userInfoIq.OrderByDescending(a => a.AddTime); userInfoIq=userInfoIq.Skip((pageIndex - 1)*pageSize).Take(pageSize);//分页前必须排序,不然EF报错 return userInfoIq; }

using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace ViewModel { /// <summary> /// JqueryDataTable插件交互的DT格式的数据(DT参数区分大小写) /// </summary> public class DataTable { /// <summary> /// 请求次数(前端==》后端) /// </summary> public int draw { get; set; } /// <summary> /// 总记录数(前端《==后端) /// </summary> public int recordsTotal { get; set; } /// <summary> /// 过滤后的总记录数(前端《==后端) /// </summary> public int recordsFiltered { get; set; } /// <summary> /// 记录开始索引(前端==》后端) /// </summary> public int start { get; set; } /// <summary> /// PageIndex(前端==》后端) /// </summary> public int pageIndex { get; set; } /// <summary> /// PageSize(前端==》后端) /// </summary> public int length { get; set; } /// <summary> /// 集合分页数据(前端《==后端) /// </summary> public IList data { get; set; } } }

这样就搞定了。。。是不是很简单(● ̄(エ) ̄●)

╮(╯_╰)╭好的,我来解释下。 

前台:

首先我们的table只是给出了thead部分,那么tbody部分呢?交给DT来完成,由DT来控制。那么我们先来初始化DT,js会调用initializeTable()方法,方法里调用$("#table1").DataTable({各种配置});来配置DT。至于这些配置的作用,我代码里都做了注释,详细的配置解释,可以查看官网的文档。

配置里有一项很重要,就是ajax配置项,这里是数据源的配置项,数据源可以有多种,我这里选用了ajax异步请求数据源。

"url": "/UserInfo/Manager/Search"这个是配置了DT请求数据的url地址

 "type": "post"指明了以post方式发送请求

 "data":

function (data) { //添加额外的数据给服务器 data.pageIndex = (data.start / data.length) + 1; data.nickname = $("#nickname").val().trim(); }

这了由于我用到了搜索的功能,所以每次请求数据的时候,要把搜索的条件作为附加的数据传给服务器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjpsw.html