符合mvc思维的分页思想
.Model Student.cs
namespace WebApplication14.Models
{
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
} .views Index.cshtml @{
Layout = null;
} <!DOCTYPE html>
@model WebApplication14.Models.Student
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div> <table id="table1">
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th> </tr>
@foreach (var stu in ViewData["stus"] as List<WebApplication14.Models.Student>)
{
<tr>
<td>@stu.Id</td>
<td>@stu.Name</td>
<td>@stu.Age</td>
</tr> }
</table>
@MvcHtmlString.Create(ViewData["pager"] as string); </table>
</div>
</body>
</html> .控制器代码 Controllers using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication14.Models; namespace WebApplication14.Controllers
{
public class HomeController : Controller
{
public List<Student> GetStudents()
{
List<Student> stus = new List<Student>();
for (int i = ; i <= ; i++)
{
stus.Add(new Student() { Id = i, Name = i.ToString(), Age = i });
}
return stus;
}
[HttpGet]
public ActionResult Index()
{ System.Text.StringBuilder sb = new System.Text.StringBuilder();
int totalCount = GetStudents().Count;
int pageSize = ;
List<Student> stus = GetStudents().OrderBy(x => x.Id).Take().ToList();
if (ViewData["currentPage"] == null)
{
ViewData["currentPage"] = ;
}
int currentPage = ;
int totalPage = (totalCount - ) / pageSize + ;
ViewData["stus"] = stus;
int pages = ;
int end = currentPage + pages - > totalPage ? totalPage : currentPage + pages - ;
for (int i = currentPage; i <=end ; i++)
{
sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'>{5}</a>", i.ToString(),,totalCount,totalPage,pages, i.ToString())); }
sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'>上一页</a>",currentPage->=?currentPage-:,pageSize,totalCount,totalPage,pages));
sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'>下一页</a>", currentPage +>totalPage?totalPage:currentPage+ ,pageSize, totalCount,totalPage,pages));
ViewData["pager"] = sb.ToString();
return View(); } public ActionResult ProcessPaging(int pageIndex,int pageSize,int totalCount,int totalPage,int pages)
{
var stus = GetStudents();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
ViewData["stus"] = stus.Skip((pageIndex - ) * pageSize).Take(pageSize).ToList();
int end = pageIndex + pages - > totalPage ? totalPage : pageIndex + pages - ;
for (int i = ; i < *pages+; i++)
{
if (pageIndex - pages + i >= && pageIndex - pages + i <= totalPage)
{
int cur = pageIndex - pages + i;
if (cur == pageIndex)
{
sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'><font color='red'>{5}</font></a>", cur.ToString(), pageSize, totalCount, totalPage, pages, cur.ToString()));
}
else
{
sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'>{5}</a>", cur.ToString(), pageSize, totalCount, totalPage, pages, cur.ToString()));
}
}
} sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'>上一页</a>", pageIndex - >= ? pageIndex - : , pageSize, totalCount, totalPage, pages));
sb.Append(string.Format("<a href='/Home/ProcessPaging?pageIndex={0}&pageSize={1}&totalCount={2}&totalPage={3}&pages={4}'>下一页</a>", pageIndex + > totalPage ? totalPage : pageIndex + , pageSize, totalCount, totalPage, pages));
ViewData["pager"] = sb.ToString();
return View("Index");
} }
}
符合mvc思维的分页思想的更多相关文章
- ASP.NET MVC 简单的分页思想与实现
首先我们通过VS创建一个空的基于Razor视图引擎的ASP.NET MVC3 Web应用程序,命名为JohnConnor.Web 对创建过程或Razor不太了解的看官,请移步 ASP.NET MVC ...
- ASP.NET MVC 数据分页思想及解决方案代码
作为一个程序猿,数据分页是每个人都会遇到的问题.解决方案更是琳琅满目,花样百出.但基本的思想都是差不多的. 下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MV ...
- ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender
(原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人 ...
- ASP.NET MVC利用PagedList分页(一)
前几天看见博客园上有人写ASP.NET MVC的分页思想,这让我不禁想起了PagedList.PagedList是NuGet上提供的一个分页的类库,能对任何IEnumerable<T>进行 ...
- asp.net mvc easyui datagrid分页
提到 asp.net mvc 中的分页,很多是在用aspnetpager,和easyui datagrid结合的分页却不多,本文介绍的是利用easyui 中默认的分页控件,实现asp.net mvc分 ...
- Android 仿淘宝头条竖直跑马灯式新闻标题及“分页思想
在淘宝App的首页中间位置,有一块小小的地方在不知疲倦地循坏滚动着头条标题(见下图的红框区域),这样的设计无疑能够在有限的手机屏幕上展示更丰富的内容.而实现这一功能需要用到的控件就是我在上一篇文章中提 ...
- asp.net mvc多条件+分页查询解决方案
开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...
- MVC无刷新分页
MVC无刷新分页(即局部刷新,带搜索,页数选择,排序功能) 我查看了很多网站,大部分评论分页都是局部刷新的,可大部分电商商品展示分页都是有刷新页面的,于是我便做了一个商品展示无刷新分页的例子.接下 ...
- MVC中用Jpaginate分页
MVC中用Jpaginate分页 So easy!(兼容ie家族) 看过几款分页插件,觉得Jpaginate比较简约,样式也比较容易的定制,而且体验也比较好,支持鼠标滑动效果.先上效果图: 整个过 ...
随机推荐
- raw_in_fields
在admin后台类中加入raw_id_fields(只适用于外键)后,会显示外键的详细信息
- WPF简单模拟QQ登录背景动画(转)
介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...
- UIScrollView的左右滑动和侧滑手势冲突的解决办法
转载自:https://blog.csdn.net/kst_123/article/details/77762811 当ViewController中添加了一个全屏的UIScrollView的时候,U ...
- 几个ssh和sftp的命令
sudo apt-get install openssh-server 装server sudo /etc/init.d/ssh stop sudo /etc/init.d/ssh start sud ...
- 【转】Jmeter笔记:响应断言详解
平时我们使用jmeter进行性能测试时,经常会用到断言.jmeter提供了很多种断言,本来想全都写一下,但发现每一个断言里面的东西都很多,所以就先写一下我们经常使用的响应断言. 第一次在cnblog上 ...
- 1136 A Delayed Palindrome
题意:略. 思路:大整数相加,回文数判断.对首次输入的数也要判断其是否是回文数,故这里用do...while,而不用while. 代码: #include <iostream> #incl ...
- java面试(6)
1 六大原则 详情参考:设计模式六大原则(转载). 2 UML类之间关系有几种?聚合和组合区别? 类之间可能存在以下几种关系:关联(association).依赖(dependency).聚合(A ...
- Oracle10g客户端连接远程数据库配置图解
yuanwen:http://blog.csdn.net/DKZhu/article/details/6027933 一. 安装oracle客户端 1. 运行setup.exe,出现 2. ...
- ctf中检测和分离隐藏的文件
使用binwalk检测是否隐藏了文件 root@sch01ar:~# binwalk '/root/桌面/test.jpg' 还藏了一个zip文件,接下来用foremost来分离文件 root@sch ...
- SqlServer——for xml path
for xml path 就是将 sql 查询出来的内容以XML的格式显示出来.参考网站MSDN:将 PATH 模式与 FOR XML 一起使用. 先创建测试用的表格: create table SZ ...