ASP.NET MVC 简单的分页思想与实现
首先我们通过VS创建一个空的基于Razor视图引擎的ASP.NET MVC3 Web应用程序,命名为JohnConnor.Web
对创建过程或Razor不太了解的看官,请移步 ASP.NET MVC Razor视图引擎攻略 <传送门> ,这里就不再赘述了。
然后我们需要进行以下几步
1,Models文件夹下,添加Student.cs文件,添加以下代码,为了演示方便这里模拟了一个数据源,实际中的数据源可能来自数据库。
![](/assets/blank.gif)
![](/assets/blank.gif)
public class Student{public int Id { get; set; }public string Name { get; set; }}public static class Students{public static IEnumerable<Student> data{get{return new List<Student>(){new Student{ Id=0, Name="John"},new Student{ Id=1, Name="Marry"},new Student{ Id=2, Name="Andy"},new Student{ Id=3, Name="Tom"},new Student{ Id=4, Name="Lydia"},new Student{ Id=5, Name="Chris"},new Student{ Id=6, Name="Justin"},new Student{ Id=7, Name="Susan"}};}}}
![](/assets/blank.gif)
2,Models文件夹下,添加PagingHelper.cs文件,添加我们上述分页器类。
![](/assets/blank.gif)
![](/assets/blank.gif)
public class PagingHelper<T>{//分页数据源public IEnumerable<T> DataSource { get; private set; }//每页显示记录的数量public int PageSize { get; private set; }//当前页数public int PageIndex { get; set; }//分页总页数public int PageCount { get; private set; }//是否有前一页public bool HasPrev { get { return PageIndex > 1; } }//是否有下一页public bool HasNext { get { return PageIndex < PageCount; } }//构造函数public PagingHelper(int pageSize, IEnumerable<T> dataSource){this.PageSize = pageSize > 1 ? pageSize : 1;this.DataSource = dataSource;PageCount = (int)Math.Ceiling(dataSource.Count() / (double)pageSize);}//获取当前页数据public IEnumerable<T> GetPagingData(){return DataSource.Skip((PageIndex - 1) * PageSize).Take(PageSize);}}
![](/assets/blank.gif)
3,在Controller文件夹下添加控制器命名为HomeController,添加以下代码。
![](/assets/blank.gif)
![](/assets/blank.gif)
public class HomeController : Controller{public ActionResult Index(int pageIndex=1){PagingHelper<Student> StudentPaging = new PagingHelper<Student>(2, Students.data);//初始化分页器StudentPaging.PageIndex = pageIndex;//指定当前页return View(StudentPaging);//返回分页器实例到视图}}
![](/assets/blank.gif)
4,在View文件夹下添加Home文件夹,并新增视图文件Index.cshtml,添加以下代码。
![](/assets/blank.gif)
![](/assets/blank.gif)
@using JohnConnor.Web.Models @model PagingHelper<Student> @{ViewBag.Title = "Index"; } <h2>Index</h2> @foreach (var Data in Model.GetPagingData()) {<p>ID:@Data.Id Name:@Data.Name</p> } <p> @if (Model.HasPrev) {<a href="@Url.Action("Index", "Home", new { pageIndex = Model.PageIndex - 1 })">上一页</a> } else {<em style="color:Gray">上一页</em> } @if (Model.HasNext) {<a href="@Url.Action("Index", "Home", new { pageIndex = Model.PageIndex + 1 })">下一页</a> } else {<em style="color:Gray">下一页</em> } </p>
![](/assets/blank.gif)
转载于:https://www.cnblogs.com/lzfsuifeng/p/9106556.html
ASP.NET MVC 简单的分页思想与实现相关推荐
- Asp.net Mvc使用PagedList分页
git: https://github.com/troygoode/PagedList 1. Nuget 安装package 2.View @{ViewBag.Title = "Proces ...
- asp.net mvc 简单文件下载
文件下载,先获取文件的路径,在通过招到文件的存放地址,通过return File(path, "text/plain", Url.Encode(name));,可以直接下载,但是必 ...
- ASP.NET MVC 4使用PagedList.Mvc分页
ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList.PagedList.Mvc进行分页. 1. 通过NuGet引用PagedList.Mvc 在安装引用Paged ...
- 在 asp.net mvc中的简单分页算法 (续)
在上个月发表的 http://www.cnblogs.com/bwangel/p/mvcpager.html 中,讨论了一下asp.net mvc中结合Entity framework框架进行的分页, ...
- ASP.NET MVC 生成简单的 xml 权限结构
ASP.NET MVC 生成简单的 xml 权限结构 当我的一个项目到尾声时,发现系统很多模块权限有遗漏.部分模块权限遗漏是由于前期开发速度太快,开发人员未先给模块加权限而后再编写该模块功能代码.当我 ...
- 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...
程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构 .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...
- Asp.net MVC 仿照博客园的简单网站首页 列表设计
本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间.所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现 ...
- 实现简单的增删改查(Asp.Net MVC+Layui)
实现简单的增删改查(Asp.Net MVC+Layui) 一.页面效果 二.前期准备 1.新建项目 2. 在项目中新建文件夹(设置mvc的雏形) 3.连接数据库(SqlServer) JdbcUtil ...
- asp.net mvc jqgrid 同一个页面查询不同的表,jqgrid显示不同表的表头和数据并且分页...
基于我上一篇文章<a href="http://www.cnblogs.com/alasai/p/4765756.html">asp.net mvc excel导入&l ...
最新文章
- 全球及中国铝拉丝润滑剂行业竞争格局及运营前景研究报告2021-2027年
- java语言程序设计你_清华大学出版社-图书详情-《Java语言程序设计》
- C语言普及组NOIP考试培训,NOIP 2018普及组复赛解题报告来了!
- 微信小程序,实现 watch 属性,监听数据变化
- 29 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义分配
- vs2019怎么调整字体大小_每年至少十万考生涂错答题卡,是时候讨论一下最新版答题卡怎么用了...
- 计算机考场桌子大小,自己打卧室电脑书桌最小宽度尺寸多少合适
- c#_delegate_异步调用_BeginInvoke
- 爬取豆瓣网新书传递信息,关系型数据库的储存
- 查看CPU最大支持内存容量
- 关于苹果手机iFiles文件管理使用方法
- 电脑突然上不了网,而且ping网关可以通
- 记录一次阿里云服务器被攻击事件
- 快搜搜:让你辞职原因有哪些?
- 有好看的女生用的黑色壁纸吗?
- 望京有没有可能成为下一个硅谷?
- Docplex入门(1)——线性规划
- 健合集团携手企企通,打造智慧采购商城管理平台
- 香港武侠电影十大金曲
- SQLServer 表分区 根据时间自动扩展分区
热门文章
- 回看2020-数据库大讲堂
- 含代码 | 支付宝如何优化移动端深度学习引擎?
- linux脚本运行java程序设计_Java运行Shell脚本
- mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程
- 开发笔记:掉落系统模块设计思路
- MySQL用中间件ProxySQL实现读写分离和主节点故障应用无感应
- 五分钟精通Oracle Hints
- C++ 变量判定的螺旋法则
- 配置错误:未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。...
- Xshell的一些实用技巧