.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 ...
随机推荐
- MySQL 导出用户权限
Version <= 5.6 #!/bin/bash #Function export user privileges source /etc/profile pwd=****** expgra ...
- JPEG
JPEG文件由八个部分组成,每个部分的标记字节为两个,首字节固定为:0xFF,当然,准许在其前面再填充多个0xFF,以最后一个为准.下面为各部分的名称和第二个标记字节的数值,用ultraedit的16 ...
- mfs windows客户端
之前用moosefs,苦于没有Windows客户端, 本来想在Linux上mfsmount一个目录然后用samba做共享目录,但是这样太不简洁了. 当然豆瓣上有的小伙伴也说自己开发了moosefs的W ...
- 查看apk文件包名的一些方法
1,如果有源码 直接将apk包修改为zip,并解压找到AndroidManifest.xml文件,在文件中搜索“package”找到相应的包名 2,使用adb命令 前提是已经下载android SDK ...
- C++遍历路径下的所有文件
intptr_t类型用于记录文件夹句柄,注意该类型不是指针类型,而是int型的重定义. _finddata_t结构体类型用于记录文件信息. _finddata_t结构体定义如下 struct _fin ...
- 深入path类
Path类放在System.IO命名空间里.Path是一个只包含有静态方法的实例类,所以它不需要在使用之前实例化.它有各种方法用于处理文件的扩展名.文件名.根路径,以及和更多和路径相关的方面.下面就是 ...
- linux之文件增删改查
- 蓝牙协议分析(8)_BLE安全机制之白名单
1. 前言 在万物联网的时代,安全问题将会受到非常严峻的挑战(相应地,也会获得最大的关注度),因为我们身边的每一个IOT设备,都是一个处于封印状态的天眼,随时都有被开启的危险.想想下面的场景吧: 凌晨 ...
- iOS - is missing from working copy
解决方案:1.打开终端2.cd 到警告所提示的文件夹下3.执行命令svn rm --force 丢失文件的名称 丢失的文件太多批量处理:1.打开终端2.sudo find /Users/mac/Des ...
- C#operator作用
opertor用于定义类型转化时采用两种方式,饮食转换implicit和显示转换explicit public static implicit 目标类型(被转化类型 变量参数) { return 目标 ...