//传入要查询的字段,查询条件(例如根据姓名查看数据的数据筛选),按照什么排序,页码,信息条数
//T:要操作的类型
//Tkey:根据什么类型来排,ID的话返回的是int类型,但是name的话又会返回string类型,不确定的情况下,就使用了tkey让用户自己确认返回的类型 GetPageList<T, Tkey>这个tkey就是Expression<Func<T, Tkey>>这个tkey
//Skip:跳过多少条
//Take:获得多少条
//Total:返回的信息总数
//isAsc:用户指定升降序
//使用Expression是因为这个方法的重载属于IQueryable方式
//这样的查询分页较为灵活,不因为类型而受限,你可传入一个学生类、一个教师类,或者一个其他类,之后查询的也是相关类的内容并且分页
//Expression<Func<T, dynamic>>这里传入的是一个student类,返回的如果是T的话就只能得到student里面所有的属性。但是如果写的是dynamic,就会是运行时返回一个指定列 的查询
public static List<dynamic> GetPageList<T, Tkey>(Expression<Func<T, dynamic>> select1, Expression<Func<T, bool>> where, Expression<Func<T, Tkey>> order, int pageSize, int pageIndex, out int total, bool isAsc) where T : class
{
//Ef空间
DBTestEntities context = new DBTestEntities();
total = context.Set<T>().Where(where).Count();
var result = context.Set<T>().Where(where);
//升降序判断
if (isAsc)
{
result = result.OrderBy(order);
}
else
{
result = result.OrderByDescending(order);
}
//Tolist:可以避免linq的延时加载
return result.Skip((pageIndex - ) * pageSize).Take(pageSize).Select(select1).ToList();
}

调用的时候在委托上使用lambda表达式,例如这样调用

     int aa = ;
var list = PageList.GetPageList<Info, int>(e => e, s => s.Id < , o => o.Id, , , out aa, true);
foreach (Info item in list)
{
Console.WriteLine("total:" + aa);
}

最后绑定一下数据集到某个控件表单上就OK啦

MVC个人认为的终极分页的更多相关文章

  1. 【干货分享】JPager.Net MVC超好用轻量级分页控件

    JPager.Net  MVC好用的轻量级分页控件,好用到你无法想象,轻量到你无法想象. JPager.Net  MVC好用的轻量级分页控件,实现非常简单,使用也非常简单. JPager.Net  M ...

  2. FineUIMvc随笔(6)对比WebForms和MVC中表格的数据库分页

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 通过对比WebForms和MVC中表格数据库分页代码的不同,可以对 MVC 中的数据流转有更加深入的了解. WebForms 中 ...

  3. MVC+Bootstrap+Drapper使用PagedList.Mvc支持多查询条件分页

    前几天做一个小小小项目,使用了MVC+Bootstrap,以前做分页都是异步加载Mvc部分视图的方式,因为这个是小项目,就随便一点.一般的列表页面,少不了有查询条件,下面分享下Drapper+Page ...

  4. 11、ASP.NET MVC入门到精通——AspnetMVC分页

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 说起分页,这基本上是我们Web开发中遇见得最多的场景,没有之一,可即便如此,要做出比较优雅的分页还是需要技巧的.这里我先说一种ASP.NET ...

  5. ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项

    引言: 本人想自己个博客网站出来,技术路线是用ASN.NET MVC5+EF6(Code First)+ZUI+各种Jquery插件,有了这个想法之后就开始选择UI,看了好多bootstrap的模板之 ...

  6. EF 之 MVC 排序,查询,分页 Sorting, Filtering, and Paging For MVC About EF

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精    上篇博客我们学习了EF CodeFirst增删改查 ...

  7. 【ASP.NET MVC 回顾】HtmlHepler应用-分页组件

    以前在ASP.NET WebForm开发中会用到许多控件,像DropDownList等.同样ASP.NET MVC中也有类似的控件-HtmlHelper. HtmlHelper和服务器控件相比,Htm ...

  8. 自定义MVC框架之工具类-分页类的封装

    以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类. 这次重新改造MVC有几个很大的收获 >全部代码都是用Ubuntu+Vim编写,以前 ...

  9. 【MVC】使用MvcPager进行分页

    1.添加引用: mvcPager 版本高的提供的功能也更多. 注:下载了第一个,但是里面的一些字段是只读的.(eg:PagedList<T> .TotalItemCount)这是不符合的. ...

随机推荐

  1. memcached缓存雪崩现象及解决办法

    1)什么是缓存雪崩?场景:一个访问很大的文章(论坛之类)的网站,使用memcached缓存用户查询过的文章.设置的缓存过期时间为6小时,所以没过6小时,缓存就会失效并重建一遍 问题:过六小时时,一部分 ...

  2. Ubuntu中文输入法的安装

    Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等.其中Scim和Ibus是输入法框架. 在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+S ...

  3. webservices上传文件

    客户端: ob_clean(); ob_start(); readfile("D:/44.jpg"); $logo = ob_get_clean(); $pararmArr = a ...

  4. Hibernate-Native SQL

    1.标量(值)查询: sess.createSQLQuery("SELECT * FROM CATS").list(); sess.createSQLQuery("SEL ...

  5. eclipse环境下tomcat远程调试方法

    前提:Windows环境tomcat是以catalina.bat方式而非Windows服务形式启动(两者所使用的JAVA配置及JVM参数会有差异). 服务器段设置 方法1:修改CATALINA_OPT ...

  6. TextView及其子类

    1.TextView控件(TextView是EditView.Button等类的父类) <1>android:id   给当前控件定义了一个唯一标识符 <2>android:l ...

  7. 配置php支持curl

    curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP.cu ...

  8. svn log 不显示日志的问题

    在你配好了Xcode里的SourceControl之后提交代码回复代码都很方便,可是为什么在Xcode上提交的log,在svn下面显示不出来! 解决办法是:在命令行下,先 svn update 一下, ...

  9. tengine+lua的安装步骤

    我是在Red Hat 5.8 的虚机上安装的. Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等.建议把这 ...

  10. mysql 用户名密码登陆不上

    问题1:刚安装完mysql,设置了用户名密码root,登陆OK的,后来再连怎么也连不上了 操作步骤: 输入:mysql -uroot -proot 提示:ERROR 1045 (28000): Acc ...