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

<%@ 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
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值