您的位置:首页 > 其它

自己写的.net分页控件,测试没有问题!

2008-01-21 11:32 357 查看
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Pager.ascx.cs" Inherits="Controls_Pager" %>

<div id="Splitdiv" class="Pager"><asp:Panel runat="server" ID="pnlSum">共
<asp:label id="lblPageCount" runat="server">0</asp:label> 页 当前第
<asp:label id="lblCurrentIndex" runat="server">1</asp:label> 页 </asp:Panel>
<asp:HyperLink ID="btnFirstPage" runat="server" CssClass="Titlecolo">首页</asp:HyperLink>
<asp:HyperLink ID="btnPrevPage" runat="server" CssClass="linkbutton">上一页</asp:HyperLink>

<asp:HyperLink ID="btnOnePage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnTowPage" runat="server" CssClass="linkbutton"></asp:HyperLink>

<asp:HyperLink ID="btnThreePage" runat="server" CssClass="linkbutton"></asp:HyperLink>
<asp:HyperLink ID="btnNextPage" runat="server" CssClass="linkbutton">下一页</asp:HyperLink>

<a runat="server" visible="false" id="point">...</a>
<asp:HyperLink ID="btnLastPage" runat="server" CssClass="Titlecolo">末页</asp:HyperLink>

</div>
========================================
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;

public partial class Controls_Pager : System.Web.UI.UserControl
{
int pageIndex = 0;
string queryString = "";

protected void Page_Load(object sender, EventArgs e)
{

}

public void BindData()
{
if (!DisplaySum)
pnlSum.Visible = false;

queryString = this.Page.Request.Url.Query;
if (queryString.Contains("pg=") && (queryString.IndexOf("pg=", 0) == 1))
queryString = "";
else if (queryString.Contains("pg="))
{
int pgs = queryString.IndexOf("pg=", 0);
queryString = queryString.Substring(0, pgs - 1);
}

int i = 0;
pageIndex = PageIndex;
int count = RowCount;
int pageCount = Int32.Parse(Math.Ceiling(1.0d * count / PageSize).ToString());
if (pageCount <= 3)
{
btnFirstPage.Visible = false;
btnLastPage.Visible = false;
switch (pageCount)
{
case 1:
btnOnePage.Text = "1";
btnTowPage.Visible = false;
btnThreePage.Visible = false;
break;
case 2:
btnOnePage.Text = "1";
btnTowPage.Text = "2";
btnTowPage.Visible = false;
break;
}
}
if (pageIndex == 1) //是首页,不显示‘首页’和‘上一页’
{
PageIndex = PageIndex + 1;
//AddLink(pageCount);
string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0)
{
btnFirstPage.NavigateUrl = String.Format("{0}&pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else
{
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 1);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 2);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 3);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 2);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}

btnOnePage.Enabled = false;
btnFirstPage.Visible = false;
btnPrevPage.Visible = false;

btnOnePage.Text = "1";
btnTowPage.Text = "2";
btnThreePage.Text = "3";
}
if (pageCount == pageIndex) // 是末页,不显示‘末页’和‘下一页’
{
btnOnePage.Text = Convert.ToString(PageIndex - 2);
btnTowPage.Text = Convert.ToString(PageIndex - 1);
btnThreePage.Text = PageIndex.ToString();

string absolutePath = this.Page.Request.Url.AbsolutePath;
if (queryString.Length == 0)
{
btnFirstPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else
{
btnFirstPage.NavigateUrl = String.Format("{0}{1}?pg={2}", absolutePath, queryString, 1);
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 2);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnPrevPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnLastPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, pageCount);
}

btnThreePage.Enabled = false;
btnLastPage.Visible = false;
btnNextPage.Visible = false;
}
if (pageIndex - 1 == 1) //是首页
{
btnFirstPage.Visible = false;
AddLink(pageCount);
}
if (pageIndex + 1 == pageCount) // 末页
{
btnLastPage.Visible = false;
AddLink(pageCount);
}
if (pageIndex > 2 && pageIndex < pageCount - 1) //中间页
{
AddLink(pageCount);
btnTowPage.Enabled = false;
}

if (pageCount <= 0)
{
pageCount = 1;
}

lblPageCount.Text = pageCount.ToString();
}

protected void AddLink(int pageCount)
{
btnOnePage.Text = Convert.ToString(PageIndex - 1);
btnTowPage.Text = PageIndex.ToString();
btnThreePage.Text = Convert.ToString(PageIndex + 1);

string absolutePath = this.Page.Request.Url.AbsolutePath;

if (queryString.Length == 0) // test.aspx?pg=1已测试
{
btnFirstPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, 1);
btnOnePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", absolutePath, pageCount);
}
else // test.aspx?h=0&pg=2 已测试
{
btnFirstPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, 1);
btnOnePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnTowPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex);
btnThreePage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex + 1);
btnPrevPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex - 1);
btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath, queryString, PageIndex + 1);
btnLastPage.NavigateUrl = String.Format("{0}{1}&pg={2}", absolutePath,queryString, pageCount);
//btnNextPage.NavigateUrl = String.Format("{0}{1}&pg={2}", this.Page.Request.Url, queryString, PageIndex + 1);
//btnLastPage.NavigateUrl = String.Format("{0}?pg={1}", this.Page.Request.Url.AbsolutePath, pageCount);
}
}

#region 公告属性
public int PageIndex
{
get
{
if (Request.QueryString["pg"] != null)
{
int page = Convert.ToInt32(Request.QueryString["pg"]);
lblCurrentIndex.Text = page.ToString();
return page;
}
else
{
if (ViewState["PAGE_Index"] != null)
return Convert.ToInt32(ViewState["PAGE_Index"].ToString());
else
return 1;

}

}
set { ViewState["PAGE_Index"] = value; }
}

public Int32 RowCount
{
get { return Convert.ToInt32(ViewState["ROW_COUNT"]); }
set { ViewState["ROW_COUNT"] = value; }
}

public Int32 PageSize
{
get { return Convert.ToInt32(ViewState["PAGE_SIZE"]); }
set { ViewState["PAGE_SIZE"] = value; }
}

public bool DisplaySum
{
get { return Convert.ToBoolean(ViewState["DISPLAYSUM"]); }
set { ViewState["DISPLAYSUM"] = value; }
}
#endregion
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: