小弟做了简单的分页,但是在上一页和下一页上有问题。代码如下:
        int curpage = Convert.ToInt32(this.lblCurrentPage.Text);---这句有问题。就是点完下一页,进入第二页后,再点下一页lblCurrentPage.Text值就为0了,点上一页也是,默认lblCurrentPage.Text值是为1的。我已经放在Page_Load里了。高手帮帮忙!谢!
        PagedDataSource ps = new PagedDataSource();
        ps.DataSource = ds.DefaultView;
        ps.AllowPaging = true;
        ps.PageSize = 2;
        ps.CurrentPageIndex = curpage - 1;
        this.lbnFirstPage.Enabled = true;
        this.lbnPrevPage.Enabled = true;
        this.lbnNextPage.Enabled = true;
        this.lbnLastPage.Enabled = true;
        if (curpage == 1)
        {
            this.lbnFirstPage.Enabled = false;
            this.lbnPrevPage.Enabled = false;
        }
        if (curpage == ps.PageCount)
        {
            this.lbnNextPage.Enabled = false;
            this.lbnLastPage.Enabled = false;
        }
        this.lblRecordCount.Text = Convert.ToString(ps.PageCount);
        this.myDropDownList.Items.Clear();
        for (int i = 0; i < Convert.ToInt32(this.lblCurrentPage.Text); i++)
        {
            int pageNumber = i + 1;
            ListItem item = new ListItem("第" + pageNumber.ToString() + "页");
            if (i == Convert.ToInt32(this.lblCurrentPage.Text))
            {
                item.Selected = true;
            }
            myDropDownList.Items.Add(item);
        }        this.MyDataGrid.DataSource = ps;
        this.MyDataGrid.DataBind();

解决方案 »

  1.   

    就是说在点上一页时报“索引 -2 不是为负数,就是大于行数。 ”这个错
    上一页代码:
            this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) - 1);
            this.BindData();
      

  2.   

    this.lblCurrentPage.Text是显示第几页的。但里说在点完下一页后this.lblCurrentPage.Text里的值应该是2了。可是还是1,所以报错!
      

  3.   

    点上一页也是,默认lblCurrentPage.Text值是为1的。我已经放在Page_Load里了。高手帮帮忙!谢!
    ======================
    我觉得你的上一页BTN是runat=server的吧
    因为这种按钮点击后都要调用page_load的,所以currentpage又为1了
    解决办法就是把currentpage定为全局的,或static不要在page_load中初始化或赋值
      

  4.   

    网上说的很多 看看吧 肯定出错了直接COPE网上的都能成功,分页问题讨论的太多了
      

  5.   

    TO anncesky() :lblCurrentPage.Text是从LABEL里面取的值。怎么设为全局的呀