分页插件通用处理,以asp.net mvc为例
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 })">«</a></li>
- }
- else
- {
- <li class="page_num on"><a href="javascript:void(0)">«</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 })">»</a></li>
- }
- else
- {
- <li class="page_num on"><a href="javascript:void(0)">»</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为例的更多相关文章
- JPagination分页插件的使用(ASP.NET中使用)
前台代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.asp ...
- ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版
MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...
- MvcPager 概述 MvcPager 分页示例 — 标准Ajax分页 对SEO进行优化的ajax分页 (支持asp.net mvc)
该示例演示如何使用MvcPager最基本的Ajax分页模式. 使用AjaxHelper的Pager扩展方法来实现Ajax分页,使用Ajax分页模式时,必须至少指定MvcAjaxOptions的Upda ...
- ASP.NET MVC 数据分页思想及解决方案代码
作为一个程序猿,数据分页是每个人都会遇到的问题.解决方案更是琳琅满目,花样百出.但基本的思想都是差不多的. 下面给大家分享一个简单的分页器,让初学者了解一下最简单的分页思想,以及在ASP.NET MV ...
- asp.net mvc easyui datagrid分页
提到 asp.net mvc 中的分页,很多是在用aspnetpager,和easyui datagrid结合的分页却不多,本文介绍的是利用easyui 中默认的分页控件,实现asp.net mvc分 ...
- 应用程序框架实战三十三:表现层及ASP.NET MVC介绍(二)
最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和Asp.net Mvc,我将在本篇讨论一些 ...
- 表现层及ASP.NET MVC介绍(二)
表现层及ASP.NET MVC介绍(二) 最近的更新速度越来越慢,主要是项目上比较忙,封装EasyUi也要花很多时间.不过大家请放心,本系列不会半途夭折,并且代码干货也会持续更新.本文继续介绍表现层和 ...
- Asp.Net MVC以 JSON传值扩展方法
Asp.Net在客户端和服务器端,以JSON形式相互传值,可写扩展方法,用到的类型如下: DataContractJsonSerializer类: 该类在System.Runtime.Serializ ...
- ASP.NET MVC制作404跳转(非302和200)
前言:距离上次发文已经有几个月了! 这段时间李,制作了一个博客网站,现将博客文章选一些发表到博客园,顺便为自己网站打一下广告! 产生404的原因主要有以下: 1.浏览器和爬虫:某些浏览器会请求网站的f ...
随机推荐
- MySQL常用的一些函数
内容太多,走链接: MySQL函数大全
- tail 命令只查看日志中的关键字所在行信息
tail -f info_log-2019-04-20.log |grep 要查询的关键字
- hdu 2476"String painter"(区间DP)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 给定字符串A,B,每次操作可以将字符串A中区间[ i , j ]的字符变为ch, ...
- 类图uml
画类图或时序的软件类图astah-community-6_9_0-b4c6e9-jre-setup 先写总体架构再写流程图 即先写类图再流程图 b ^ | a a继承b 工具类是us ...
- HDU 1003 Max Sum 求区间最大值 (尺取法)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- jquery 前端 跨域 jsonp
1.jsonp 支持get:可以跨域: 2.java 在controller中增加header: /** * 获取用户信息 */ @ResponseBody @RequestMapping(value ...
- rancher使用fluentd-pilot收集日志分享
fluentd-pilot简介 fluentd-pilot是阿里开源的docker日志收集工具,Github项目地址:https://github.com/AliyunContainerService ...
- 全角的空格(A1A1)惹的祸!
#先上干货 “A1A1”是指全角的空格(GBK码): #验证 由上图可以看出半角的空格的HEX为"20": 由上图可以看出,在ANSI格式编码的文件中输入的全角的空格,转换为HEX ...
- java io系列10之 FilterInputStream
FilterInputStream 介绍 FilterInputStream 的作用是用来“封装其它的输入流,并为它们提供额外的功能”.它的常用的子类有BufferedInputStream和Data ...
- 设计模式---接口隔离模式之代理模式(Proxy)
一:概念 代理模式(Proxy Pattern)就是为其他对象提供一种代理以控制对这个对象的访问. 比如: 智能指针 为别人做嫁衣 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端 ...