public IQueryableUserInfo getiqueryablebysearch page(int pageIndex,int pageSize,out int total,string nickname)
{
IQueryableUserInfo userInfoIq=current dal。GetIQueryable();
如果(!字符串。IsNullOrEmpty(昵称))
{
userInfoIq=userInfoIq。其中(a=a . nickname . contains(nickname));
}
total=userInfoIq。count();
userInfoIq=userInfoIq。OrderByDescending(a=a . add time);
userInfoIq=userInfoIq。Skip((pageIndex - 1)*pageSize)。take(pageSize);//分页前排序,否则EF会报错。
返回userInfoIq
}
使用系统;
使用系统。收藏;
使用系统。集合。泛型;
使用系统。Linq
使用系统。文本;
命名空间视图模型
{
///摘要
///jQuery数据表插件交互的DT格式数据(DT参数区分大小写)
////摘要
公共类数据表
{
///摘要
///请求数(前端==后端)
////摘要
public int draw { get设置;}
///摘要
///记录总数(前端==后端)
////摘要
public int recordsTotal { get设置;}
///摘要
///筛选出的记录总数(前端==后端)
////摘要
public int recordsFiltered { get设置;}
///摘要
///记录开始索引(前端==后端)
////摘要
public int start { get设置;}
///摘要
///PageIndex(前端==后端)
////摘要
public int pageIndex { get设置;}
///摘要
///PageSize(前端==后端)
////摘要
public int length { get设置;}
///摘要
///设置分页数据(前端==后端)
////摘要
公共IList数据{ get设置;}
}
}
就是这样。是不是很简单(~()~)
( _ ) 好吧,让我解释一下。
一.使用DT,需要以下支持
首先我们的表只给出了thead部分,那么tbody部分呢?留给DT去完成,DT来管。那我们先初始化DT。js会调用initializeTable()方法,其中$(#table1 )。调用了DataTable({各种配置});配置DT。至于这些配置的功能,我已经在我的代码里做了注释。详细的配置说明,可以查看官网文档。
配置中有一项非常重要,就是ajax配置项。这是数据源的配置项。数据来源有很多种。我在这里选择了ajax异步请求数据源。
二、页面上进行引入js,直接使用DT功能
/userinfo/manager/search 这是用DT请求数据配置的url地址。前端代码:
“post”表示请求通过邮寄发送。后端代码:
函数(数据){
//向服务器添加附加数据
data . page index=(data . start/data . length)1;
data.nickname=$(#nickname )。val()。trim();
}
因为我使用搜索功能,所以每次请求数据时,我都要将搜索条件作为附加数据发送给服务器。
最后,小心加上‘server side’:真的,因为我们的数据都是后台的,不是前台的静态数据。你要打开“服务器模式”,这样你每次对表单的操作,都会变成一个请求,一次又一次的发送给服务器。
前台:
后台负责提供数据源,并使用自定义的DataTable类作为格式化数据进行交互。当然,这里的DataTable类不是必须的。你只需要满足前后数据交互的格式。为了方便起见,这里将其封装为一个类。
DT建议我们交互的数据格式至少要包含以下几项,我用匿名类来表示(区分大小写):
新建{
draw=***,
recordsTotal=***,
recordsFiltered=***,
数据=***,
}
其他项目,可以根据自己的实际情况添加。
数据准备好之后,Json将数据序列化并返回到前端。
效果图:
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。