.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 P4114] Disney's FastPass
[hdu P4114] Disney's FastPass Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 ...
- [poj P1475] Pushing Boxes
[poj P1475] Pushing Boxes Time Limit: 2000MS Memory Limit: 131072K Special Judge Description Ima ...
- zabbix3.4.7远程命令例子详解
zabbix可以通过远程发送执行命令或脚本来对部分的服务求故障进行修复 zabbix客户端配置 设置zabbix客户端用户的sudo权限 执行命令visudo: Defaults:zabbix !re ...
- Oracle获取当前年、月、日的方法
Oracle获取当前年.月.日的方法 Oracle 获取当前年.月.日 1.//oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的 ...
- js--------1.时间
//获取当前时间 yyyy-MM-dd function getNowFormatDate() { var date = new Date(); var seperator1 = "-&qu ...
- latex中使用listings显示代码
\documentclass[12pt,a4paper]{article}\usepackage{ctex}\usepackage{listings}\usepackage{xcolor}\begin ...
- MFC VC++ 根据文件名获取程序的Pid
环境:PC Win7 VS VC++ .MFC 使用,输入文件名即可获取程序的pid,进而可以对程序进行操作,比如关闭Porcess等. 头文件: #include <TlHelp32.h> ...
- GPU知识了解
前言 今天在使用阿里云的时候,无意间看到了有GPU服务器,于是对它做了一个大概的了解. 概念 GPU是Graphics Processing Unit的缩写,翻译成中文就是图形处理器.是一种专门在个人 ...
- eval函数解析json数据时加上圆括号的原因
var temp = eval("(" + data + ")"); //解析json数据 json是以”{}”的方式来开始以及结束的,在JS中,“{}”会被当 ...
- Spring Data JPA 常用注解 @Query、@NamedQuery
1.@Transient @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性:如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架 ...