asp.net自制分页页码条控件
用过微软的服务器控件分页的人都知道~那卡的一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自制分页页码条控件的更多相关文章
- WEB进度条控件
近段时间为了工作的需要学习了一下写自定义控件,呵呵!以前没写过,近段时间才开始研究的,昨天写了一个WEB状态条控件,可以设置进度条的百分比,也可以设置它的总数与当前的数量来自动计算百分比,可以设置颜色 ...
- Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
现在如果想打造一款专业的App,UI的设计和操作的简便性相当重要.UI设计可以借助Photoshop或者AI等设计工具,之前了解到WPF设计工具Expression Blend可以直接导入PSD文件或 ...
- [转载]ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件
作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...
- asp.net 弹出式日历控件 选择日期 Calendar控件
原文地址:asp.net 弹出式日历控件 选择日期 Calendar控件 作者:逸苡 html代码: <%@ Page Language="C#" CodeFile=&quo ...
- 用 CALayer 定制下载进度条控件
// // RPProgressView.h // CALayer定制下载进度条控件 // // Created by RinpeChen on 16/1/2. // Copyright © 2016 ...
- ExtJs4 笔记(8) Ext.slider 滚轴控件、 Ext.ProgressBar 进度条控件、 Ext.Editor 编辑控件
本篇要登场的有三个控件,分别是滚轴控件.进度条控件和编辑控件. 一.滚轴控件 Ext.slider 1.滚轴控件的定义 下面我们定义三个具有代表意义滚轴控件,分别展示滚轴横向.纵向,以及单值.多值选择 ...
- 【转】用emWin进度条控件做个表盘控件,效果不错
@2018-08-09 用emWin进度条控件做个表盘控件,效果不错
- 为OLED屏添加GUI支持6:进度条控件
为OLED屏添加GUI支持6:进度条控件 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:S ...
- 日期条控件 DateFieldControl
日期条控件 书:163 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns ...
随机推荐
- BZOJ3609 [Heoi2014]人人尽说江南好 【博弈】
题目链接 BZOJ3609 题解 我们假设最后合成若干个\(m\),和\(n \mod m\),此时合成次数是最多的,也唯一确定胜利者 可以发现,在轮流操作的情况下,胜利者一定可以将终态变为这个状态 ...
- idiots
idiots 题目描述 给定 $n$ 个长度分别为 $a_i$ 的木棒,问随机选择 $3$ 个木棒能够拼成三角形的概率. 输入格式 第一行一个正整数 nn. 第二行 nn 个正整数,第 ii 个数表示 ...
- SyntaxError: Unexpected token ' in JSON at position 1
刚才遇到一个问题: 在公司两个不同的环境竟然会出现错误 对比一下两个环境的数据,发现一个传来的是双引号的JSON字符串,一个是单引号.而当我用JSON.parse()时,就会报错!! 原因是JSON. ...
- java 符号引用与直接引用
简单来说: 符号引用就是字符串,这个字符串包含足够的信息,以供实际使用时可以找到相应的位置.你比如说某个方法的符号引用,如:“java/io/PrintStream.println:(Ljava/la ...
- Java并发编程--CyclicBarrier
概述 CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点.与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyc ...
- Asp .Net MVC中常用过滤属性类
/// <summary> /// /// </summary> public class AjaxOnlyAttribute : ActionFilterAttribute ...
- Windows ToolTips简要介绍(转)
原文转自 https://blog.csdn.net/sesiria/article/details/77450151 Windows 标准控件ToolTips简要介绍 参考文档 MSDN https ...
- fmap为什么可以用function作为第二个参数
看看fmap的类型 fmap :: Functor f => (a -> b) -> f a -> f b 很明显的,第一个参数是function,第二个参数是functor的 ...
- 利用System.Net.Mail 发送邮件
我这里只是试了一下发mail的功能,感觉.net自带的发mail是比较全的,还是直接上我的code 参数文章:System.Net.Mail 发送邮件 SMTP协议 using System; usi ...
- CF978E Bus Video System【数学/前缀和/思维】
[链接]: CF [分析]: 设上车前人数 x ,中途最大人数为 x+max ,最小人数为 x+min (max≥0,min≤0) 可得不等式组 x+max≤w, x+min≥0 整数解个数为 max ...