.net mvc 分页
1、分页实体类
public class PageDto
{
public int PageIndex { get; set; }
public int PageSize { get; set; }
public int PageCount { get; set; }
public int TotalCount { get; set; }
}
后端代码
public async Task<IActionResult> Index()
{
var page = HttpContext.Request.Query["page"].ToString();
var pageSize = HttpContext.Request.Query["pageSize"].ToString(); var searchDto = new FileSearchDto()
{
PageIndex = string.IsNullOrWhiteSpace(page) ? 1 : Convert.ToInt32(page),
PageSize = string.IsNullOrWhiteSpace(pageSize) ? 5 : Convert.ToInt32(pageSize)
}; var results = await _service.GetPageList(searchDto);
var model = new FileListViewModel() { Results = results };
return View(model);
}
2、视图
@using System.Text;
@model BaseService.PageDto @if (Model.TotalCount > Model.PageSize)
{
var controller = Url.ActionContext.RouteData.Values["controller"];
var action = Url.ActionContext.RouteData.Values["action"];
var url = "/" + controller + "/" + action;
var querys = Url.ActionContext.HttpContext.Request.Query;
StringBuilder sb = new StringBuilder();
sb.AppendFormat("/{0}/{1}?", controller, action);
if (querys != null && querys.Count > 0)
{
foreach (var item in querys)
{
if (!item.Key.Equals("page"))
{
sb.AppendFormat("{0}={1}", item.Key, item.Value);
sb.Append("&");
}
}
}
sb.Append("page"); url = sb.ToString(); <div style="position:fixed;bottom:-15px;text-align:center;width:84%">
<ul class="pagination">
<h5 class="pull-left">显示第 @((Model.PageIndex - 1) * Model.PageSize + 1) - @(Model.PageIndex * Model.PageSize > Model.TotalCount ? Model.TotalCount : Model.PageIndex * Model.PageSize) 条记录,共 @Model.TotalCount 条记录</h5>
@if (Model.PageIndex > 1)
{
<li><a href="@url=1" title="首页"><i class="fa fa-chevron-left"></i></a></li>
}
else
{
<li class="disabled"><a href="javascript:;" title="首页"><i class="fa fa-chevron-left"></i></a></li> }
@{
int pagesizeshow = 6;//每次显示分页按钮数量
int pagemin = Model.PageIndex - (int)(pagesizeshow / 2);
int pagemax = Model.PageIndex + (int)(pagesizeshow / 2);
if (Model.PageIndex + (int)(pagesizeshow / 2) >= Model.PageCount)
{
pagemin = Model.PageCount - (int)(pagesizeshow / 2);
pagemax = Model.PageCount;
}
if (Model.PageIndex <= (int)(pagesizeshow / 2))
{
pagemin = 1;
pagemax = pagesizeshow;
}
if (pagemin <= 0) { pagemin = 1; }
if (pagemax >= Model.PageCount) { pagemax = Model.PageCount; }
if (pagemin + pagesizeshow >= Model.PageCount) { pagemin = (Model.PageCount - pagesizeshow) >= 1 ? (Model.PageCount - pagesizeshow) : pagemin; } if (pagemin == pagemax)
{
<li><a href="@url=@pagemin">@pagemin</a></li>
}
else
{
for (int i = pagemin; i <= pagemax; i++)
{
<li @if (Model.PageIndex == i) { <text> class="active" </text> }><a href="@url=@i">@i</a></li>
}
}
} @if (Model.PageIndex < Model.PageCount)
{
<li><a href="@url=@Model.PageCount" title="尾页"><i class="fa fa-chevron-right"></i></a></li>
}
else
{
<li class="disabled"><a href="javascript:;" title="尾页"><i class="fa fa-chevron-right"></i></a></li>
}
</ul>
</div>
}
3、调用
@Html.Partial("~/Views/Pager/Create.cshtml", Model.Results.Page)
.net mvc 分页的更多相关文章
- MVC分页
http://www.cnblogs.com/iamlilinfeng/p/4075292.html 目录 一.Contrl与View数据传递(多表数据) 二.分页控件介绍 三.MVC源码说明 四.源 ...
- ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版
MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...
- ASP.NET MVC 4使用PagedList.Mvc分页
ASP.NET MVC中进行分页的方式有多种,在NuGet上有提供使用PagedList.PagedList.Mvc进行分页. 1. 通过NuGet引用PagedList.Mvc 在安装引用Paged ...
- ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页
我之前就已经实现了ASP.NET MVC分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...
- Mvc 分页栏扩展方法
using System; using System.Collections.Generic; using System.Reflection; using System.Text; using Sy ...
- 转:MVC分页
原文地址:http://www.cnblogs.com/iamlilinfeng/p/4075292.html 分页总是搞得我很烦,也是因为刚接触,貌似有好多插件,之前在用一个,可是后来发现一翻页原来 ...
- spring mvc 分页
spring mvc 分页
- 基于Bootstrap的Asp.net Mvc 分页
基于Bootstrap的Asp.net Mvc 分页的实现 最近写了一个mvc 的 分页,样式是基于 bootstrap 的 ,提供查询条件,不过可以自己写样式根据个人的喜好,以此分享一下.首先新建一 ...
- Mvc分页组件MvcSimplePager代码重构
1 Mvc分页组件MvcSimplePager代码重构 1.1 Intro 1.2 MvcSimplePager 代码优化 1.3 MvcSimplePager 使用 1.4 End Mvc分页组件M ...
- Mvc分页组件MvcSimplePager代码重构及使用
1 Mvc分页组件MvcSimplePager代码重构 1.1 Intro 1.2 MvcSimplePager 代码优化 1.3 MvcSimplePager 使用 1.4 End Mvc分页组件M ...
随机推荐
- [hdu P1599] find the mincost route
[hdu P1599] find the mincost route 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第六周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 内部类:在一个类中定义另一个类:包含内部类的类为外嵌类 内部类 ...
- SQL语句中Left join,right join,inner join用法
转载于:https://blog.csdn.net/lichkui/article/details/2002895 一.先看一些最简单的例子 例子 Table Aaid adate 1 ...
- Go used as value问题
练习Go变参时遇到一个报错:used as value 代码如下: // 错误代码 func myfunc(arg ...int) { for _, n := range arg { fmt.Prin ...
- Java容器解析系列(4) ArrayList Vector Stack 详解
ArrayList 这里关于ArrayList本来都读了一遍源码,并且写了一些了,突然在原来的笔记里面发现了收藏的有相关博客,大致看了一下,这些就是我要写的(╹▽╹),而且估计我还写不到博主的水平,这 ...
- vue初体验-ES6 基础知识补充 let 和const
本人水平有限,如内容有误,欢迎指正,谢谢. let : 主要特点: 1.作用域只局限于当前代码块.2.使用let 声明的变量作用域不会被提升.3.在相同的作用域下不能声明相同的变量.4.for循环体 ...
- python脚本 FTP上传学习
学习了这个博文http://www.cnblogs.com/cacique/archive/2012/08/24/2653686.html,楼主这个文章很适合初学者,所以根据楼主的内容推演了下上传文件 ...
- MySQL:数据操作
数据操作 一.插入数据 1.所有字段插入数据 语法: insert into 数据表名(字段名) values(插入的数据);(标准)insert into 数据表名values(插入的数据); 实例 ...
- winform 下载
方法一: WebClient webClint = new WebClient(); webClint.DownloadFile(下载文件的路径,下载到本地的地址); 方法二:异步 WebClient ...
- 《ProgrammingHive》阅读笔记-第二章
书本第二章的一些知识点,在cloudera-quickstart-vm-5.8.0-0上进行操作. 配置文件 配置在/etc/hive/conf/hive-site.xml文件里面,采用mysql作为 ...