asp.net数字分页效果
来源:互联网 发布:js在线调试工具 编辑:程序博客网 时间:2024/05/23 00:55
<div id="PageInfo" runat="server" class="paginator "><!--放在页面的DIV标签-->
<!--下面是分页的3种样式-->
<style type="text/css">
.paginator { font: 11px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0; margin: 0px;}
.paginator a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px}
.paginator a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;}
.paginator .cpb {padding: 1px 6px;font-weight: bold; font-size: 13px;border:none}
.paginator a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;}
.anpager { font: 11px Arial, Helvetica, sans-serif;margin:5px 4px 0 0;padding:4px 5px 0;}
.anpager .cpb {background:#1F3A87;border:1px solid #CCCCCC;color:#FFFFFF;font-weight:bold;margin:0;padding:4px 5px 1px;}
.anpager a {background:#FFFFFF;border:1px solid #CCCCCC;color:#1F3A87;margin: 0;padding:4px 5px 1px;text-decoration:none}
.anpager a:hover{background:#1F3A87;border:1px solid #1F3A87;color:#FFFFFF;}
.pages { color: #999; }
.pages a, .pages .cpb { text-decoration:none;float: left; padding: 0 5px; border: 1px solid #ddd;background: #ffff;margin:0 2px; font-size:11px; color:#000;}
.pages a:hover { background-color: #E61636; color:#fff;border:1px solid #E61636; text-decoration:none;}
.pages .cpb { font-weight: bold; color: #fff; background: #E61636; border:1px solid #E61636;}
</style>
<!--放在后台的绑定数据代码-->
DataSet ds = new NewsFacade().GetAllData();
InfoList.DataSource = ds.Tables[0].DefaultView;
InfoList.DataBind();
this.PageInfo.InnerHtml = PageNums.GetPageNum(ds, InfoList, 12); //传入DataSet,DataList名称和分页大小
<!--分页类的开始代码-->
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
/// <summary>
///PageNums 的摘要说明
/// </summary>
public class PageNums
{
/// </summary>
/// <param name="ds">DataSet实例</param>
/// <param name="datalistname">DataList名称</param>
/// <param name="pagesize">分页大小</param>
public static string GetPageNum(DataSet ds, Repeater datalistname, int pagesize)
{
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
int total = ds.Tables[0].Rows.Count;
objPds.PageSize = pagesize;
int page;
if (HttpContext.Current.Request.QueryString["page"] != null)
page = Convert.ToInt32(HttpContext.Current.Request.QueryString["page"]);
else
page = 1;
objPds.CurrentPageIndex = page - 1;
datalistname.DataSource = objPds;
datalistname.DataBind();
int allpage = 0;
int next = 0;
int pre = 0;
int startcount = 0;
int endcount = 0;
string pagestr = "";
if (page < 1) { page = 1; }
//计算总页数
if (pagesize != 0)
{
allpage = (total / pagesize);
allpage = ((total % pagesize) != 0 ? allpage + 1 : allpage);
allpage = (allpage == 0 ? 1 : allpage);
}
next = page + 1;
pre = page - 1;
startcount = (page + 5) > allpage ? allpage - 9 : page - 4;//中间页起始序号
//中间页终止序号
endcount = page < 5 ? 10 : page + 5;
if (startcount < 1) { startcount = 1; } //为了避免输出的时候产生负数,设置如果小于1就从序号1开始
if (allpage < endcount) { endcount = allpage; } //页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内
pagestr = "共" + allpage + "页 ";
pagestr += page > 1 ? "<a href=/"" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=1/">首页</a> <a href=/"" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + pre + "/">上一页</a>" : "首页 上一页";
//中间页处理,这个增加时间复杂度,减小空间复杂度
for (int i = startcount; i <= endcount; i++)
{
pagestr += page == i ? " <font color=/"#ff0000/">" + i + "</font>" : " <a href=/"" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + i + "/">" + i + "</a>";
}
pagestr += page != allpage ? " <a href=/"" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + next + "/">下一页</a> <a href=/"" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + allpage + "/">末页</a>" : " 下一页 末页";
return pagestr;
}
}
<!--分页类的结束代码-->
转载地址:http://www.cnblogs.com/ndxsdhy/archive/2010/11/13/1876746.html
- asp.net数字分页效果
- asp.net实现分页效果
- 数字分页导航条 (asp.net C#)
- C# Asp.Net数字分页控件
- 数字分页导航条 (asp.net C#)
- 前台分页,url分页,分页代码,前台分页效果,asp.net分页
- 自己用asp.net 搞的数字导航条分页
- asp.net中Datalist使用数字分页的实现方法
- Asp.Net 生成静态页并实现分页效果
- asp 实现数字分页
- asp数字分页函数
- AJAX 分页 asp.net分页
- asp 固定 显示分页数字
- asp数字分页类,如下:
- asp仿discuz数字分页
- ASP.NET手工分页
- asp.net分页
- 【asp.NET】分页实例
- 有点乱
- Microsoft_CryptoAPI加密技术
- 优秀的程序员
- VC启动一个程序并等待运行结束
- java applet init start
- asp.net数字分页效果
- Windows 7各版本的主要功能区别是什么 有何不同
- git 小技巧
- VC6.0和VS2003对CWinThread类消息映射的不同
- Socket编程原理
- InterlockedCompareExchange 用法
- ASIHTTPRequest系列(四):Cookies
- CMPP协议之CMPP_CONNECT
- Linux下Socket网络编程,文件传输,数据传输的C语言例子