using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using PTFair.WebSites.Common;
public partial class Controls_Pager : System.Web.UI.UserControl
{
private string _UrlFormat;
private string _UrlPar;
private int _PageSize;
private int _RecordCount;
private int _PageCount = 5;
private int flag = 0;
private int _SetPageIndex = 0;
Security mySecurity;
/// <summary>
/// 连接页面
/// </summary>
public string UrlFormat
{
get
{
return _UrlFormat;
}
set
{
_UrlFormat = value;
}
}
/// <summary>
/// 链接参数
/// </summary>
public string UrlPar
{
get
{
return _UrlPar;
}
set
{
_UrlPar = value;
}
}
/// <summary>
/// 每页显示记录数
/// </summary>
public int PageSize
{
get
{
return _PageSize;
}
set
{
_PageSize = value;
}
}
/// <summary>
/// 当前页码
/// </summary>
public int PageIndex
{
get
{
string Pageindex;
if (SetPageIndex == 1)
Pageindex = "1";
else
{
if (Request["list"] != null)
{
mySecurity = new Security();
string pars = mySecurity.DecryptQueryString(Request["list"]);
string[] tmplist = pars.Split(',');
Pageindex = tmplist[0];// HttpContext.Current.Request.QueryString["list"];
}
else
Pageindex = "1";
}
if (Pageindex != null)
{
return int.Parse(Pageindex);
}
return 1;
}
}
/// <summary>
/// 初始话当前页为第一页
/// </summary>
public int SetPageIndex
{
get
{
return _SetPageIndex;
}
set
{
_SetPageIndex = value;
}
}
/// <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)
{
if (PageSize == 0)
PageSize = int.Parse(ConfigurationSettings.AppSettings["PageSize"]);
PageCount = System.Convert.ToInt32(Math.Ceiling((Decimal)RecordCount / PageSize));//获取页数
if (RecordCount == 0)
return;
int SumPage = (RecordCount + PageSize - 1) / PageSize;//页数?
flag = (PageIndex - 1) / 10;
StringBuilder sb = new StringBuilder(string.Format("页次:{0}/{1} 每页:{2} 共计:{3}条 ", PageIndex, SumPage, PageSize, RecordCount));
mySecurity = new Security();
if (PageIndex > 1)
{
sb.Append("<a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, 1)) + "\">首页</a> ");
sb.Append(" <a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, PageIndex - 1)) + "\">上一页</a> ");
}
if (this.PageIndex > 10)
{
sb.Append("<a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, 10 * flag)) + "\"><<</a> ");
}
int start, end;
start = 10 * flag + 1;
if (10 * (flag + 1) > PageCount)
{
end = PageCount;
}
else
{
end = 10 * (flag + 1);
}
for (int i = start; i <= end; i++)
{
if (i == PageIndex)
{
sb.Append(" <strong>" + PageIndex.ToString() + "</strong> ");
}
else
{
sb.Append("<a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, i)) + "\">" + i + "</a> ");
}
sb.Append(" ");
}
if (PageCount > 10 * (flag + 1))
{
sb.Append("<a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, 10 * (flag + 1) + 1)) + "\">>></a> ");
}
if (PageIndex < SumPage)
{
sb.Append(" <a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, PageIndex + 1)) + "\">下一页</a> ");
sb.Append(" <a href=\"" + UrlFormat + mySecurity.EncryptQueryString(string.Format(UrlPar, SumPage)) + "\">尾页</a>");
}
writer.Write(sb.ToString());
}
protected void Page_Load(object sender, EventArgs e)
{
}
}