public delegate void PageChangeDeleagete(DataTable dt);            //定义委托
    public event PageChangeDeleagete PageChangeEvent;                  //定义事件
    private DataTable dt = new DataTable();                             //数据源
 
    protected void Page_Load(object sender, EventArgs e)
    {
    }    /// <summary>
    /// 设置当前页码
    /// </summary>
    public int PageIndex
    {
        get
        {
            return ViewState["pageIndex"] == null ? 1 : Convert.ToInt32(ViewState["pageIndex"]);
        }
        set
        {
            ViewState["pageIndex"] = value;        }
    }    /// <summary>
    /// 设置数据源,及控件状态初始化
    /// </summary>
    /// <param name="pageSize">每页条数</param>
    /// <param name="pageTotal">总条数</param>
    /// <param name="refDt">数据源</param>
    public void setDataTable(int pageTotal, int pageSize, DataTable refDt)
    {
        dt = refDt;
        int currentPage = GetPageCount(pageTotal, pageSize);
        if (PageIndex == 1)
        {
            lbIndex.Enabled = false;
            lbBack.Enabled = false;
        }
        else
        {
            lbIndex.Enabled = true;
            lbBack.Enabled = true;
        }
        if (PageIndex == currentPage)
        {
            lbNext.Enabled = false;
            lbLast.Enabled = false;
        }
        else
        {
            lbNext.Enabled = true;
            lbLast.Enabled = true;
        }
        lblTotalPage.Text = currentPage + "";
        lblCurrentPage.Text = PageIndex + "";
        lblPageSize.Text = pageSize + "";
        lblTotal.Text = pageTotal + "";
    }
    /// <summary>
    /// 获得总页码
    /// </summary>
    /// <param name="pageTotalCount">总记录数</param>
    /// <param name="pageSize">当前记录</param>
    /// <returns>总页码</returns>
    private int GetPageCount(int pageTotalCount, int pageSize)
    {
        int num = 1;
        if (pageTotalCount % pageSize == 0)
        {
            num = pageTotalCount / pageSize;
        }
        else
        {
            num = pageTotalCount / pageSize + 1;
        }
        return num;
    }    /// <summary>
    /// 首页
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void lbIndex_Click(object sender, EventArgs e)
    {
        PageIndex = 1;
        PageChangeEvent(dt);
    }
    /// <summary>
    /// 上一页
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void lbBack_Click(object sender, EventArgs e)
    {
        PageIndex--;
        PageChangeEvent(dt);
    }
    /// <summary>
    /// 下一页
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void lbNext_Click(object sender, EventArgs e)
    {
        PageIndex++;
        PageChangeEvent(dt);
    }
    /// <summary>
    /// 最后一页
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void lbLast_Click(object sender, EventArgs e)
    {
        PageIndex = Convert.ToInt32(this.lblTotalPage.Text);
        PageChangeEvent(dt);
    }    /// <summary>
    /// 跳到目的页
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnT_Click(object sender, EventArgs e)
    {
        if (txtPageNum.Text.Trim() != "")
        {
        
            int num = Convert.ToInt32(txtPageNum.Text);            if (num <= Convert.ToInt32(this.lblTotalPage.Text) && num > 0)
            {
                PageIndex = num;
                txtPageNum.Text = "";
                PageChangeEvent(dt);
            }
        }
    }

解决方案 »

  1.   

    调用    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bind();
            }
            PagerControl1.PageChangeEvent += new PagerControl.PageChangeDeleagete(PagerControl1_PageChangeEvent);
        }    void PagerControl1_PageChangeEvent(System.Data.DataTable dt)
        {
            bind();
        }
      

  2.   


     int cup = Convert.ToInt32(Label1.Text);
            PagedDataSource ps = new PagedDataSource();
            ps.DataSource = ds.Tables["NetShop"].DefaultView;
            ps.AllowPaging = true;
            ps.PageSize = 6;
            ps.CurrentPageIndex = cup - 1;
            Label2.Text = ps.DataSourceCount.ToString();
            lb_page.Text = ps.PageCount.ToString();
            if (!IsPostBack)
            {
                for (int i = 1; i < ps.PageCount + 1; i++)
                {
                    this.DropDownList1.Items.Add(i.ToString());
                }
                previouspg.Enabled = true;
                nextpg.Enabled = true;
            }
            try
            {
                DropDownList1.SelectedItem.Text = cup.ToString();
                DataList1.DataSource = ps;
                DataList1.DataBind();
            }
            catch (Exception ex)
            {
                throw ex;
            } protected void firstpg_Click(object sender, EventArgs e)
        {
            if (Label1.Text != "1")
            {
                Label1.Text = "1";
            }
            else
            {
                LblMsg.Visible = true;
                LblMsg.Text = "已经是第一页了!";
            }
            setbind();
        }
        protected void previouspg_Click(object sender, EventArgs e)
        {        try
            {
                if (Convert.ToInt16(Label1.Text) > 1)
                {
                    Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) - 1);
                    DropDownList1.SelectedValue = Label1.Text;
                    setbind();
                }
                else
                {
                    LblMsg.Visible = true;
                    LblMsg.Text = "已经是第一页了!";
                }
            }
            catch (Exception ex)
            {            LblMsg.Visible = true;
                LblMsg.Text = "已经是第一页了!";        }    }
        protected void nextpg_Click(object sender, EventArgs e)
        {
            try
            {
                Label1.Text = Convert.ToString(Convert.ToInt32(Label1.Text) + 1);
                DropDownList1.SelectedValue = Label1.Text;
                setbind();
            }
            catch (Exception ex)
            {
                LblMsg.Visible = true;
                LblMsg.Text = "已经是最后一页了!";
                Label1.Text = "1";
                setbind();
            }
        }
        protected void lastpg_Click(object sender, EventArgs e)
        {
            if (Label1.Text.ToString() != lb_page.Text.ToString())
                Label1.Text = lb_page.Text.ToString();
            else
            {
                
            }
            setbind();
        }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int page = Convert.ToInt16((DropDownList1.SelectedItem.Value));
            Label1.Text = page.ToString();
            setbind();    }
      

  3.   

    aspnetpager分页控件
     当前页:<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>&nbsp; 总页数:<asp:Label
                ID="Label2" runat="server" Text="Label"></asp:Label>
            <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">上一页</asp:LinkButton>
            <asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click">下一页</asp:LinkButton>
            <asp:LinkButton ID="LinkButton3" runat="server" OnClick="LinkButton3_Click">尾页</asp:LinkButton></div>
        </form>
    protected void LinkButton1_Click(object sender, EventArgs e)
            {
                if (Label1.Text == "1")
                    return;
                bind(Convert.ToInt32(Label1.Text) - 1);
            }        protected void LinkButton2_Click(object sender, EventArgs e)
            {
                if (Label1.Text == Label2.Text)
                    return;
                bind(Convert.ToInt32(Label1.Text) + 1);
            }        protected void LinkButton3_Click(object sender, EventArgs e)
            {
                if (Label1.Text == Label2.Text)
                    return;
                bind(Convert.ToInt32(Label2.Text));
            }
      

  4.   


       在GridView中实现分页的效果方法很简单,只需要在“GridView任务”对话框中进行设置就可以了。在“GridView任务”对话框中,选择“启用分页”命令,这样建立起简单的分页效果。 在使用“启用分页”命令的时候要注意两点。 (1)  是否允许分页 GridView的AllowPaging属性。AllowPaging:是否允许分页。如果AllowPaging=“true”就是允许分页。否则就是不允许使用分页。 (2)       每页记录数 GridView的PageSize属性。在GridView控件的属性中可以设置每页显示的数据记录的个数。默认情况下PageSize的值是10,也可以根据需要进行设置。 如果想要对分页编码进行设置的话,可以在HTML代码中为GridView控件添加分页导航条形式代码。也就是启用GridView的PagerSettings属性,在PagerSettings属性中可以设置根据需要设置Mode的值,来实现分页编码的显示效果。             <PagerSettings                 Mode = "NextPreviousFirstLast"                 FirstPageText = "第一页"                 LastPageText = "末页">             </PagerSettings> 
    注意: PagerSettings属性的Mode:Numeric,NextPrevious,NextPreviousFirstLast,NumericFirstLast。有这四种,可以根据不同需要进行不同的选择设置。 自动设置分页效果 
    现在想要在GridView控件上显示如下页码信息:总页数、当前页、首页、上一页、下一页、尾页。 创建总页数 <asp:Label ID="Lab_PageCount" runat="server"  Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label> 创建但前页 <asp:Label  ID="Lab_CurrentPage" runat="server"  Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"></asp:Label> 创建首页 <asp:LinkButton ID="LBtn_FirstPage" runat="server" CommandArgument="First" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">首页</asp:LinkButton> 创建上一页 <asp:LinkButton ID="LBtn_PreviousPage" runat="server" CommandArgument="Prev" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton> 创建下一页 <asp:LinkButton ID="LBtn_NextPage" runat="server" CommandArgument="Next" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton> 创建尾页 <asp:LinkButton ID="LBtn_LastPage" runat="server" CommandArgument="Last" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkButton> 对应后台代码     public void GetDataSet() 
        { 
            string zhuangtmc; 
            zhuangtmc = Convert.ToString(DropDownList1.Text); 
            string sql; 
            sql = "Select L.LunWBH,L.LunWBT,Z.ZhuangTMC,L.ZhuCYHM,B.BianJM,L.TouGRQ From T_LunWXX L ,T_LunWZhT Z,T_BianJPL B  "; 
            sql += "Where L.ZhuangTBH=Z.ZhuangTBH AND B.LunWBH=L.LunWBH AND"; 
            sql += " B.BianJM='" + zhucyhm + "'"; 
            if (zhuangtmc != "") 
            { 
                sql += " And Z.ZhuangTMC='" + zhuangtmc + "'"; 
            } 
            sql += " Order By TouGRQ"; 
            CommonDB = new Common(); 
            GridView1.DataSource = CommonDB.DataSource(sql); 
            GridView1.DataBind();         //用lblCurrentIndex来显示当前页的页数。 
            LabelCurrentPage.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页"; 
            //用LblPageCount来显示当前数据的总页数。 
            LabelPageCount.Text = "共 " + GridView1.PageCount.ToString() + " 页"; 
            //用LblrecordCount来显示数据的总条数。 
            LabelRecordCount.Text = "总共 " + CommonDB.DataSets(sql).Tables[0].Rows.Count.ToString() + " 条";         // 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页" 
            //点击首页设定的值为1。 
            LinkButtonFirstPage.CommandName = "1"; 
            //点击‘上一页’ 
            LinkButtonPreviousPage.CommandName = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString()); 
            //点击‘下一页’ 
            LinkButtonNextPage.CommandName = (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString()); 
            //点击‘尾页’ 
            LinkButtonLastPage.CommandName = GridView1.PageCount.ToString(); 
        }