我从数据库中查出的数据大约是几千条,用gridview分页显示出来了.但是在查看第二页的查询结果时,我发现显示出来的数据不是我所查询出来的,而是默认的在pageload里绑定的所有数据.我怀疑是databind()的问题.因为在pageload()里,没有ispostback.
我想问一下,在分页后点下一页时,
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;        GridView1.DataBind();
    }
这个DataBind()数据绑定是如何进行的?

解决方案 »

  1.   

    要加ispostback
    ispostback
    {
    绑定
    }
    不然你的页面每次load的时候就会执行 以前的绑定 所以显示不出来
      

  2.   

    但是加了ispostback以后,点下一页时gridview就消失了啊.
      

  3.   

    GridView1.PageIndex = e.NewPageIndex;        GridView1.DataBind();-------------------
    你这样作应当是不行的你点击下一页时候就把按条件查的用所有的替换掉了你是用默认的分页还是自己写的啊?
      

  4.   

    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataSource = ds;//ds是你要绑定的数据源(查询以后的话就是查询后的数据源)
    GridView1.DataBind();
      

  5.   

    同意楼上。
    把你的取出数据的步骤做成一个方法,作为绑定源返回。
    在GridView1.DataBind();之前,加上
    GridView1.DataSource = ds;//ds是你要绑定的数据源(查询以后的话就是查询后的数据源)。
    单独使用
    GridView1.DataBind();是没有任何意义的。
      

  6.   

    谢谢楼上的的两位,我试一下看看.
    to: fxqyyzg(海冬青)(昨夜西风凋碧树。独上高楼,望尽天涯路) 
    我用的是默认的分页.
      

  7.   

    string sql_select = "select * from jb_qyjbxx where ** and **";
            dt_select = DataComm.GetSqlData(sql_select);
            GridView1.DataSource = dt_select;
            GridView1.DataBind();
    **代表条件.有很多条件.
    我从数据库取数据用的代码就这几句,怎么把它变成一个datasource返回啊?
      

  8.   

    我的问题解决了。设置了一个静态变量,在需要的时候改变其值.然后在每次ispostback时,databind().
    谢谢!