用过微软的服务器控件分页的人都知道~那卡的一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. 厌倦了ListBox打印消息,使用RichTextBox试试吧

    背景 Winform打印后台线程运行时消息,习惯用ListBox,有时候某行消息过长,设置个Tooltip控件提示全部信息.后来无意中看到同事使用RichTextBox打印消息,然后在不同的消息类别上 ...

  2. 开源免费的C/C++网络库(c/c++ sockets library)(转)

    原文转自 http://blog.csdn.net/weiwangchao_/article/details/8730199 (1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨 ...

  3. 错误:'nasm' 不是内部或外部命令,也不是可运行的程序

    原文转自 http://blog.csdn.net/alexcrazy/article/details/7183312 >正在执行自定义生成步骤 >'nasm' 不是内部或外部命令,也不是 ...

  4. sqlalchemy多表查询

    from datetime import datetime from sqlalchemy import Column,Integer,String,Boolean,DateTime,ForeignK ...

  5. (八) stm8程序段定位,理解lkf文件

    要修改.lkf 文件. ST 有个中文文档: 如何基于STM8S系列MCU进行项目开发 页29/34 当“Auto”选择框被勾选时,.lkf文件会自动生成在项目主目录下的 debug/ 和 relea ...

  6. 使用bottle进行web开发(1):hello world

    为什么使用bottle?因为简单,就一个py文件,和其他模块没有依赖,3000多行代码. http://www.bottlepy.org/docs/dev/ 既然开始学习,就安装它吧. pip3 in ...

  7. Postman前端HTTP请求调试神器教程

    Postman功能: 主要用于模拟网络请求包 快速创建请求 回放.管理请求 快速设置网络代理 我们看下界面: 一 接口请求流程: 二 postman使用   从流程图中我们可以看出,一个接口请求需要设 ...

  8. yii2 ftp 的常规操作 上传 下载

    <?php function make_directory($ftp_stream, $dir){ // if directory already exists or can be immedi ...

  9. Delphi 的TSpeedButton按下和弹起效果

    想达到这样的效果: 点击一下TSpeedButton按钮,按钮凹下去,再点击一下,按钮弹起恢复. 实现方法: 只要设置下述2个属性即可,不需要编码: ①AllowAllUp = True ②Group ...

  10. 前端设计的常用属性,CSS的盒模型,页面布局的利器

    在CSS和HTML结合布局页面的过程中,有一组被人们称为“盒属性”的CSS样式,被广泛的使用到.相信经常布局写页面的朋友们对盒属性一定不陌生.在CSS技术的发展过程中,盒属性也有了许多次改进,今天小编 ...