Model:

   public class PaggerModel
{
public PaggerModel()
{
BarSize = ;
} public PaggerModel(int total, int page, int size) : this()
{
TotalCount = total;
CurrentPageIndex = page;
PageSize = size;
} public PaggerModel(int total, int page, int size, string action, string controller) : this(total, page, size)
{
ActionName = action;
ControllerName = controller;
} public string ActionName { get; set; }
public int BarSize { get; set; }
public string ControllerName { get; set; } /// <summary>
/// 当前页码
/// </summary>
public int CurrentPageIndex
{
get
{
return currentPageIndex;
}
set
{
currentPageIndex = (value < ? : value);
}
} /// <summary>
/// 最后一页页码
/// </summary>
public int LastPageIndex
{
get
{
if (PageSize == )
{
return (int)Math.Ceiling((double)TotalCount / );
}
return (int)Math.Ceiling((double)TotalCount / PageSize) == ? : (int)Math.Ceiling((double)TotalCount / PageSize);
}
} /// <summary>
/// 单个页面显示条目
/// </summary>
public int PageSize
{
get
{
return pageSize;
}
set
{
pageSize = (value < ? : value);
}
} /// <summary>
/// 总条目
/// </summary>
public int TotalCount { get; set; }
private int currentPageIndex { get; set; }
private int pageSize { get; set; }
}

View:

以分部视图的方式渲染:

 @Html.Partial("PaggerModel", ViewBag.PaggerModel as PaggerModel)

PaggerModel.cshtml:

@model PaggerModel
@{
var config = ViewData["Config"] as PaggerModelConfig;
var configcss = "";
if (config != null)
{
configcss = "pager-init";
}
else
{
config = new PaggerModelConfig { };
}
int current = Model.CurrentPageIndex;
var pageSize = Model.PageSize == ? : Model.PageSize;
var half = (Model.BarSize - ) / ;
var fi = current - half;
var li = current + Model.BarSize - - half;
li = li > Model.LastPageIndex ? Model.LastPageIndex : li;
if (fi < )
{
fi = ;
li = Model.LastPageIndex < Model.BarSize ? Model.LastPageIndex : Model.BarSize;
}
while (fi > && li - fi + < Model.BarSize)
{
--fi;
}
var maxrow = Model.TotalCount > ? : Model.TotalCount;
if (maxrow == ) { maxrow = ; }
} <div class="turn_page_wrap">
<ul class="turn_page_bar df">
<li class="first_page"><a href="@Url.QAction(Model.ActionName, Model.ControllerName, new { p=1, size=pageSize })">首页</a></li>
@if (current > )
{
<li class="page_num"><a href="@Url.QAction(Model.ActionName, Model.ControllerName, new { p=current-1, size=pageSize })">&laquo;</a></li>
}
else
{
<li class="page_num on"><a href="javascript:void(0)">&laquo;</a></li>
}
@for (int i = fi; i <= li; i++)
{
if (i == current)
{
<li class="page_num on"><a href="@Url.QAction(Model.ActionName, Model.ControllerName, new { p = i, size = pageSize })">@i</a></li>
}
else
{
<li class="page_num"><a href="@Url.QAction(Model.ActionName, Model.ControllerName, new { p = i, size = pageSize })">@i</a></li>
}
}
@if (current < Model.LastPageIndex)
{
<li class="page_num"><a href="@Url.QAction(Model.ActionName, Model.ControllerName, new { p = current + 1, size = pageSize })">&raquo;</a></li>
}
else
{
<li class="page_num on"><a href="javascript:void(0)">&raquo;</a></li>
}
<li class="last_page"><a href="@Url.QAction(Model.ActionName, Model.ControllerName, new { p=Model.LastPageIndex, size=pageSize })">尾页</a></li>
</ul>
</div>

分页插件通用处理,以asp.net mvc为例的更多相关文章

  1. JPagination分页插件的使用(ASP.NET中使用)

    前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.asp ...

  2. ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...

  3. MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)

    该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...

  4. ASP.NET MVC 数据分页思想及解决方案代码

    作为一个程序猿,数据分页是每个人都会遇到的问题.解决方案更是琳琅满目,花样百出.但基本的思想都是差不多的. 下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MV ...

  5. asp.net mvc easyui datagrid分页

    提到 asp.net mvc 中的分页,很多是在用aspnetpager,和easyui datagrid结合的分页却不多,本文介绍的是利用easyui 中默认的分页控件,实现asp.net mvc分 ...

  6. 应用程序框架实战三十三:表现层及ASP.NET MVC介绍(二)

    最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和Asp.net Mvc,我将在本篇讨论一些 ...

  7. 表现层及ASP.NET MVC介绍(二)

    表现层及ASP.NET MVC介绍(二) 最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和 ...

  8. Asp.Net MVC以 JSON传值扩展方法

    Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...

  9. ASP.NET MVC制作404跳转(非302和200)

    前言:距离上次发文已经有几个月了! 这段时间李,制作了一个博客网站,现将博客文章选一些发表到博客园,顺便为自己网站打一下广告! 产生404的原因主要有以下: 1.浏览器和爬虫:某些浏览器会请求网站的f ...

随机推荐

  1. C# http请求带请求头部分

    直接上代码 前台调用: <script type="text/javascript"> function zLoginCheck() { var Account = ' ...

  2. 第四篇 - 爬取前程无忧python相关工作

    环境:python3    pycharm 模块:requests,xlwt,urllib.request,re 正常三步走: 1.获取源代码 2.匹配源代码,获得目标数据 3.存储到文件中 直接上代 ...

  3. 第三十四节,目标检测之谷歌Object Detection API源码解析

    我们在第三十二节,使用谷歌Object Detection API进行目标检测.训练新的模型(使用VOC 2012数据集)那一节我们介绍了如何使用谷歌Object Detection API进行目标检 ...

  4. 第二十节,使用RNN网络拟合回声信号序列

    这一节使用TensorFlow中的函数搭建一个简单的RNN网络,使用一串随机的模拟数据作为原始信号,让RNN网络来拟合其对应的回声信号. 样本数据为一串随机的由0,1组成的数字,将其当成发射出去的一串 ...

  5. 递归思维判断数组a[N]是否为一个递增数组

    递归的方法:记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束: bool fun( int a[], int n ) { ) { return true; } ) { ] ...

  6. 基础教程:Mac 电脑小白应该了解哪些东西?

    文章素材来源:知乎 文章收录于:风云社区(www.scoee.com),提供1700多款mac软件下载. 本文提供给那些从 PC 阵营初入 Mac 的同学而准备的,我们希望从硬件和软件.设计风格和使用 ...

  7. M1-Flask-Day1

    前情概要 1.flask的基本使用 - 配置 - 路由 - 视图 - 请求与响应相关 - 模板 2.flask基于装饰器实现的路由 - 基本操作 - functools - 带参数的装饰器 - 源码剖 ...

  8. pt-kill 用法记录

    pt-kill 用法记录 # 参考资料Percona-Toolkit系列之pt-kill杀会话利器http://www.fordba.com/percona-toolkit-pt-kill.html ...

  9. 2018 CCPC-FINAL 后记

    赛前认为这将会是我生涯最接近铁牌的一场比赛,遗憾的是没有抓住机会,又打了个铜出来. 6题可做题,去掉签到4道数学题可把我无聊坏了,幸好主办方出了个算法题给我自娱自乐了几个小时. Day1热身赛,贪心, ...

  10. .gitignore无效的原因

    有时候,我们编写gitinore后发现文件还是没有被忽略,这是什么原因呢? 熟知git的老鸟们可能已经知道,因为这个文件在之前已经被追踪了,如果想忽略已经被追踪的文件我们需要把这个追踪去除. 对所有文 ...