一个简单实用的分页控件
来源:互联网 发布:js判断复选框是否选中 编辑:程序博客网 时间:2024/05/17 07:50
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
namespace localhost
{
/// <summary>
/// Pager 的摘要说明。
/// </summary>
public class Pager : Control
{
private string _UrlFormat;
private int _PageSize;
private int _RecordCount;
private int _PageCount = 5;
/// <summary>
/// 连接格式
/// </summary>
public string UrlFormat
{
get
{
return _UrlFormat;
}
set
{
_UrlFormat = value;
}
}
/// <summary>
/// 页长度
/// </summary>
public int PageSize
{
get
{
return _PageSize;
}
set
{
_PageSize = value;
}
}
/// <summary>
/// 当前页码
/// </summary>
public int PageIndex
{
get
{
string Pageindex = HttpContext.Current.Request.QueryString["PageIndex"];
if ( Pageindex != null )
{
return int.Parse(Pageindex);
}
return 1;
}
}
/// <summary>
/// 总记录数
/// </summary>
public int RecordCount
{
get
{
return _RecordCount;
}
set
{
_RecordCount = value;
}
}
/// <summary>
/// 两边显示个数
/// </summary>
public int PageCount
{
get
{
return _PageCount;
}
set
{
_PageCount = value;
}
}
protected override void Render(HtmlTextWriter writer)
{
int SumPage = (RecordCount + PageSize - 1)/PageSize;
int start = PageIndex - PageCount;
int end = PageIndex + PageCount;
//以PageIndex为中心,前后个显示Page个页码导航
if (SumPage>(PageCount*2+1))
{
if (start<1)
{
start = 1;
end = start + 10;
}
else if (end>SumPage)
{
start = SumPage - 10;
end = SumPage;
}
}
else
{
start = 1;
end = SumPage;
}
string tmp = "<a href=/"" + UrlFormat + "/">[{0}]</a>";
StringBuilder sb = new StringBuilder();
if (PageIndex > 1)
{
sb.Append(string.Format("<a href=/"" + UrlFormat + "/">首页</a>", 1));
sb.Append(string.Format("<a href=/"" + UrlFormat + "/">上一页</a>", PageIndex - 1));
}
for (int i = start; i <= end; i++)
{
if (i==PageIndex)
{
sb.Append("[" + PageIndex.ToString() + "]");
}
else
{
sb.Append(string.Format(tmp, i));
}
sb.Append(" ");
}
if (PageIndex < SumPage)
{
sb.Append(string.Format("<a href=/"" + UrlFormat + "/">下一页</a>", PageIndex + 1));
sb.Append(string.Format("<a href=/"" + UrlFormat + "/">尾页</a>", SumPage));
}
writer.Write(sb.ToString());
}
}
}
调用示例:
前台代码
<%@ Register NameSpace="localhost" TagPrefix="hh" assembly="localhost" %>
<hh:Pager id="Pager1" PageSize="20" UrlFormat="/{0}.aspx" runat="server"></hh:Pager>
后台代码
protected Pager Pager1;
Pager1.RecordCount = 32455;
- 一个简单实用的分页控件
- 一个简单实用的分页控件
- 简单实用的分页控件
- 一个简单的分页控件
- 一个简单的分页控件
- 一个php简单实用的分页函数
- 一个简单的分页控件(源码)
- WPF一个简单的分页控件
- 简单实用的一个sqlserver 2005 UP分页语句
- 一个简单的分页控件,用来自定义分页用的
- 一个简单的分页控件,用来自定义分页用的
- 一个实用的JSP分页
- 一个实用的分页算法
- 打造一个简单实用的安卓广告栏控件
- 一个简单的数据行分页用户控件
- FlexGrid控件的简单实用
- 网格控件的简单实用
- .net自制实用的分页控件
- 提问的艺术
- 2006.10.23++
- 2006.10.23+++
- 2006.10.23(5)
- 2006.10.23(6)
- 一个简单实用的分页控件
- 2006.10.23(7)
- 2006.10.23(8)
- 与朋友的对话 GP与OO
- 2006.10.23(9)
- fork点滴
- 2006.10.23(10)
- 2006.10.23(11)
- 2006.10.23(12)