用过微软的服务器控件分页的人都知道~那卡的一A啊~

遂想自制分页页码条控件以备不时之需。

走你~

public static class PageShow
{
/// <summary>
/// 分页页码条
/// </summary>
/// <param name="requestHref">请求的地址</param>
/// <param name="totalCount">数据总条数</param>
/// <param name="currentPage">当前页码</param>
/// <param name="pageSize">每页个数</param>
/// <returns></returns>
public static string Show(string requestHref, int totalCount, int currentPage, int pageSize)
{
//初始化pageSize和totalPages
pageSize = pageSize == 0 ? 6 : pageSize;//默认为每页显示6条数据
var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//Math.Ceiling(totalCount / (pageSize / 1.0));//使用Ceiling函数也可以,效果是一样的,根据数据的总条数和每页要显示的个数,计算出总页数,如:共有96条数据,每页显示6条,则总页数为16
var outPut = new StringBuilder();//构建输出字符串
outPut.AppendFormat("<div class='pagination'>");//所有的样式需要自定义
//当总页数大于一页才分页显示,否则直接显示出该页
if (totalPages > 1)
{
//当前页面不是第一页的时候显示首页链接
if (currentPage != 1)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex=1&&pageSize={1}'>首页</a>"
, requestHref, pageSize);
}
//当前页面大于第一页的时候显示上一页链接
if (currentPage > 1)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>上一页</a>"
, requestHref, currentPage - 1, pageSize);
}
//否则上一页无法点击
else
{
outPut.AppendFormat("<span class='disabled'>上一页</span>");
}
outPut.Append(" ");
//循环输出页面列表
const int currint = 3;
//最多有6个超链接,前3个后3个
for (int i = 0; i < 6; i++)
{
if (currentPage + i - currint >= 1 && currentPage + i - currint <= totalPages)
{
if (currint == i)
{
outPut.AppendFormat("<span class='disabled'>{0}</span>", currentPage + i - currint);
}
else
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>{3}</a>"
, requestHref, currentPage + i - currint, pageSize, currentPage + i - currint);
}
}
outPut.Append(" ");
}
if (currentPage < totalPages)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>下一页</a>"
, requestHref, currentPage + 1, pageSize);
}
else
{
outPut.AppendFormat("<span class='disabled'>下一页</span>");
}
outPut.Append(" ");
if (currentPage != totalPages)
{
outPut.AppendFormat("<a class='pageLink' href='{0}pageIndex={1}&&pageSize={2}'>末页</a>"
, requestHref, totalPages, pageSize);
}
outPut.Append(" ");
}
outPut.AppendFormat("第{0}页/共{1}页", currentPage, totalPages);
outPut.AppendFormat("</div>");
return outPut.ToString();
}
}

asp.net自制分页页码条控件的更多相关文章

  1. WEB进度条控件

    近段时间为了工作的需要学习了一下写自定义控件,呵呵!以前没写过,近段时间才开始研究的,昨天写了一个WEB状态条控件,可以设置进度条的百分比,也可以设置它的总数与当前的数量来自动计算百分比,可以设置颜色 ...

  2. Photoshop和WPF双剑配合,打造炫酷个性的进度条控件

    现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...

  3. [转载]ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...

  4. asp.net 弹出式日历控件 选择日期 Calendar控件

    原文地址:asp.net 弹出式日历控件 选择日期 Calendar控件 作者:逸苡 html代码: <%@ Page Language="C#" CodeFile=&quo ...

  5. 用 CALayer 定制下载进度条控件

    // // RPProgressView.h // CALayer定制下载进度条控件 // // Created by RinpeChen on 16/1/2. // Copyright © 2016 ...

  6. ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件

    本篇要登场的有三个控件,分别是滚轴控件.进度条控件和编辑控件. 一.滚轴控件 Ext.slider 1.滚轴控件的定义 下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向.纵向,以及单值.多值选择 ...

  7. 【转】用emWin进度条控件做个表盘控件,效果不错

    @2018-08-09 用emWin进度条控件做个表盘控件,效果不错

  8. 为OLED屏添加GUI支持6:进度条控件

    为OLED屏添加GUI支持6:进度条控件 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:S ...

  9. 日期条控件 DateFieldControl

    日期条控件 书:163 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns ...

随机推荐

  1. BZOJ1086 [SCOI2005]王室联邦 【dfs + 贪心】

    题目 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成 员来管理.他的国家有n个城市,编号为1..n.一些城市之间有道路相连,任意两 ...

  2. hibernate中类状态转换

  3. jira7.3/7.2安装、中文及破解

    jira是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪(bug管理).客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域. 现在我们来介绍,有关jira安装. ...

  4. Share single RDM between multiple VM's in ESX

    1.Create a VM01 on esx01,Create a VM02 on esx02 2.Create the RDM on your VM01 (using the virtual, no ...

  5. 理解javascript的闭包,原型,和匿名函数及IIFE

    理解javascript的闭包,原型,和匿名函数(自己总结) 一 .>关于闭包 理解闭包 需要的知识1.变量的作用域 例1: var n =99; //建立函数外的全局变量 function r ...

  6. java rsa 解密报:javax.crypto.BadPaddingException: Decryption error

    Exception in thread "main" javax.crypto.BadPaddingException: Decryption error    at sun.se ...

  7. C++/C---字符串

    其他类型转字符串 itoa 功 能:把一整数转换为字符串用 法:char *itoa(int value, char *string, int radix);详细解释:itoa是英文integer t ...

  8. Xcode_Build_Setting_Reference

    http://download.csdn.net/detail/xinlingdedahai/8350631 https://developer.apple.com/library/ios/docum ...

  9. Android Sshd使用

    1. 介绍 因为某些原因, 笔者需要在android上开发,  使用adb比较麻烦, 于是想使用sshd. 推荐的软件是openssh, 其他选择有dropbear, mosh.当然还有其他选择, 如 ...

  10. libv4l 库【转】

    转自:http://www.cnblogs.com/emouse/archive/2013/03/05/2944522.html V4L2摸索了两天还是一头雾水,今天调试一个程序发现两个头文件: #i ...