一个简单的分页功能的实现(.net开发 数据库使用EF 语句linq)
2018-12-19 10:45
183 查看
做了一个简单的分页功能,入门15天小白,大佬勿喷。分页主要是根据当前页面去数据库里取当前页面要展示的几条内容,当然,你也可以全部取出来,那就只是一个“假分页”,要多少取多少是分页的精髓所在,这极大的减轻了数据库的压力,并且前端更加美观易于操作。
首先,实现类分页功能需要的参数就是一页显示多少行,处于哪一页,当然,这个一页显示多少行可以后台定义,也可以由前台传值过来,返回的结果是一共是多少页,还有当前页的内容,然后去前台绑定。由于我的是在系统里,所以我还有个参数userid,先上代码:
这里只提供一下实现类代码,也就是个方法,给大家提供个思路,前端的话大家可以自由发挥。大家要的话我也可以贴出来。
//实现类实现分页功能,pageindex是当前处于第几页,从前台传过来的 public QueryPageModel<PaperInfo> ShowPaperList(long UserId,int pageindex) { PaperInfo showresult = new PaperInfo(); //底下这个a就是一页多少行 也就是row int a = 5; //计算一下总行数x int x =(from paperinfo in Context.PaperInfo where paperinfo.UserId == UserId select paperinfo ).Count(); //最后返回的r或者r+1的意思是总页数 int r =x/a; //r+1== pageindex这说明现在正处于最后一页,并且最后一页不是“满的”(也就是说最后一页不足五行),这时从数据库里取数据需要算一下这一页要多少行,并且最后返回的总页数都是r+1(这个就不多说了,至于为啥是r+1,除法取整原理) if (r + 1 == pageindex) { List<PaperInfo> list = (from paperinfo in Context.PaperInfo where paperinfo.UserId == UserId orderby paperinfo.SubmitTime select paperinfo).Skip(a*pageindex-a).Take(x-a*pageindex+a).ToList(); QueryPageModel<PaperInfo> model = new QueryPageModel<PaperInfo>() { Models = list, Total = r+1 }; return model; } //这里else说明要不现在不是处于最后一页,要不就是处于最于最后一页并且最后一页是满的,也就是说明处于一个满的页面上,这时从数据库里取数据都是一样的,因为都是取a行,但是返回的总页数不一定一样,因为可能最后一页不是满的,此时就要r+1,所以又分了两种情况 else { //这里是最后一页是满的情况,总页数就等于r if (x % a == 0) { List<PaperInfo> list = (from paperinfo in Context.PaperInfo where paperinfo.UserId == UserId orderby paperinfo.SubmitTime select paperinfo).Skip(a * pageindex - a).Take(a).ToList(); QueryPageModel < PaperInfo > model = new QueryPageModel<PaperInfo>() { Models = list, Total = r }; return model; } //这里是最后一页不是满的情况,此时总页数等于r+1 else { List<PaperInfo> list = (from paperinfo in Context.PaperInfo where paperinfo.UserId == UserId orderby paperinfo.SubmitTime select paperinfo).Skip(a * pageindex - a).Take(a).ToList(); QueryPageModel < PaperInfo > model = new QueryPageModel<PaperInfo>() { Models = list, Total = r + 1 }; return model; } } }
只给大家做个参考,提供一个思路,有什么建议欢迎提出,我是小白,大佬们轻喷。
相关文章推荐
- 使用EF+ASP.NET MVC+Bootstrap开发一个功能强大的问卷调查系统
- ASP.NET使用AspNetPager实现简单的分页功能
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 【网络转载】Asp.net使用XPath实现一个简单的RSS阅读器
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- iOS开发UI基础—23使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- .NET开发实现类似Web Parts功能,超简单实现
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能...
- 【Android开发经验】关于“多线程断点续传下载”功能的一个简单实现和讲解
- IOS开发之使用Speex格式实现简单的语音聊天功能(二)
- ASP.NET使用Cookie简单实现记住登陆状态功能
- 用Python 实现刷钻网上抢任务,并实现一个简单的限制使用时间的功能
- Objective-C ,ios,iphone开发基础:使用第三方库FMDB连接sqlite3 数据库,实现简单的登录
- 使用EF6和MVC5实现一个简单的选课系统--使用EF6实现基本的GRUD功能(2/12)
- ADO.Net实现非连接的简单分页方法(DataAdapter.Fill重载中的一个).
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- iOS开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- asp.net中一个linq分页实现代码
- .NET数据库编程求索之路--3.使用ADO.NET实现(SQL语句篇)(1)