首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

帮忙看看小弟我的datalist分页出错在哪了吧,卡在这儿两天了

2012-02-01 
帮忙看看我的datalist分页出错在哪了吧,卡在这儿两天了.前几天做了个datalist分页运行良好,同在却报起错来

帮忙看看我的datalist分页出错在哪了吧,卡在这儿两天了.
前几天做了个datalist分页运行良好,同在却报起错来.
错误:
            索引-4不是为负数,就是大于行数.
代码如下:
public   partial   class   _Default   :   System.Web.UI.Page  
{
  protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (!IsPostBack)  
                {
                        Session.Add( "test1 ",   0);
                        fenye();
                  }
        }
      protected   void   fenye()
        {
                SqlConnection   con   =   DB.createConnection();
                SqlDataAdapter   sda   =   new   SqlDataAdapter();
                sda.SelectCommand   =   new   SqlCommand( "select   *   from   DetailsView ",   con);
                DataSet   ds   =   new   DataSet();
                sda.Fill(ds,   "emp ");
                System.Web.UI.WebControls.PagedDataSource   ps   =   new   PagedDataSource();
                ps.DataSource   =   ds.Tables[ "emp "].DefaultView;
                ps.AllowPaging   =   true;
                ps.PageSize   =   4;
                this.LabelNum.Text=   Convert.ToString(Convert.ToInt32(Session[ "test1 "])+1);//labelNum显示页码.
                ps.CurrentPageIndex   =   Convert.ToInt32(Session[ "test1 "]);
                this.Btnleft.Enabled   =   true;
                this.BtnRight.Enabled   =   true;
                if   (Convert.ToInt32(Session[ "test1 "])   ==   0)
                {
                        this.Btnleft.Enabled   =   false;//Btnleft为控制向左翻页
                }
                if   (Convert.ToInt32(Session[ "test1 "])   ==   ps.PageCount   -   1)
                {
                        this.BtnRight.Enabled   =   false;//Btnright为控制向右翻页
                }
                this.DataListALL.DataSource   =   ps;
                this.DataListALL.DataBind();
        }
  protected   void   Btnleft_Click(object   sender,   EventArgs   e)


        {
                Session[ "test1 "]   =   Convert.ToInt32(Session[ "test1 "])   -   1;
                fenye();
        }
        protected   void   BtnRight_Click(object   sender,   EventArgs   e)
        {
                Session[ "test1 "]   =   Convert.ToInt32(Session[ "test1 "])   +   1;
                fenye();
        }

[解决办法]
你那太麻烦
http://blog.sina.com.cn/u/3f475b3d010008fq
这里有datalist分页技术
[解决办法]
你fenye()方法写的没问题,关键检查下你当前页面的值是否正确.
[解决办法]
PagedDataSource pds = new PagedDataSource();

pds.DataSource = ds_Statis.Tables[0].DefaultView;

pds.PageSize = 6;

pds.AllowPaging = true;

ViewState[ "PageCount "] = pds.PageCount;

this.lbl_TotalPage.Text = ViewState[ "PageCount "].ToString();

this.lbl_CurrentPage.Text = ViewState[ "CurrPage "].ToString();

if(int.Parse(ViewState[ "CurrPage "].ToString()) - 1 == 0)
{
this.lnk_First.Enabled = false;

this.lnk_Previous.Enabled = false;
}
if(int.Parse(ViewState[ "CurrPage "].ToString()) == pds.PageCount)
{
this.lnk_End.Enabled = false;

this.lnk_Next.Enabled = false;
}

pds.CurrentPageIndex = int.Parse(ViewState[ "CurrPage "].ToString()) - 1;

this.dg_Statis.DataSource = pds;

this.dg_Statis.DataBind();


private void lnk_Previous_Click(object sender, System.EventArgs e)
{
this.m_CurrentPage = int.Parse(this.lbl_CurrentPage.Text);

m_CurrentPage--;

this.lbl_CurrentPage.Text = m_CurrentPage.ToString();

ViewState[ "CurrPage "] = this.m_CurrentPage;

BindData();
}

private void lnk_Next_Click(object sender, System.EventArgs e)
{
this.m_CurrentPage = int.Parse(this.lbl_CurrentPage.Text);

this.m_CurrentPage++;

this.lbl_CurrentPage.Text = this.m_CurrentPage.ToString();

ViewState[ "CurrPage "] = this.m_CurrentPage;

BindData();
}

热点排行