我使用语句: public static string sqlstr; 
(类变量) 然后动态给sqldatasource赋值 
sqldatasource1.selectcommand = sqlstr; 
sqldatasource1.databind(); 
gridview1.datasource = sqldatasource1; 
gridview1.databind(); 这个gridview是有分页的. 点击第二页的时候,发现sqlstr变成了NaN,是不是page_load的时候把它又清空了? 这样gridview1就没有数据了.请问大家有什么解决办法? 非常感谢了....谢谢关注.. 

解决方案 »

  1.   

    pageload里面用Page.IsPostBack
    分页里面用方法 bind()
      

  2.   

    可能是你的分页有问题或者别的操作使sqlstr置空了
      

  3.   

    这样不好.
    public static string sqlstr;
    sqlstr = "select xxx from xxxxtable where xx= "
    需要给数据源赋值的时候,就动态的把后面的参数加上
    sqlstr = sqlstr + someArgus;
    这个someArgus可以用QueryString  或者Cookie 等等多种方式来传到服务器端.
      

  4.   

    to redlotoc(红莲花)
    用了viewstate了,还是不行.to color2002(网络资源库) 
    IsPostBack已经使用了,但里面我并没有对sqlstr进行操作,应该是在页面load的时候,类变量被初始化为NaN了.
    分页里用bind()是什么意思?谢谢
      

  5.   

    pageload里面用Page.IsPostBack,在里面初始化sqlstr的值,就初始化一次,
    分页里面用方法 bind()
      

  6.   

    to flyingfz(戴眼镜的野人) 动态参数问题我知道.现在问题是我使用了gridview的自动分页,在点击第二页时,发现sqlstr被清空了.而sqldatasource也没有数据.所以gridview 也就没有了数据.在page_indexchanging里,已经有写了        this.GridView1.PageIndex = e.NewPageIndex;
            this.GridView1.DataBind();
      

  7.   

    to  elaine_ying() 我的sqlstr是动态生成的,没办法在page_laod的时候初始化.因为是组合查询,所以不固定.
      

  8.   

    if(!Page.IsPostBack)
    {
    .................
    this.GridView1.DataBind();
    }
      

  9.   

    在page_indexchanging里,已经有写了        this.GridView1.PageIndex = e.NewPageIndex;
            this.GridView1.DataBind();        //这里没有重新得到数据源,直接DataBind()当然是什么也没有了
    如果你的代码不多,相关代码都贴切一下吧,就你现在的描述,上面的问题看不出具体原因
      

  10.   

    public partial class Default2 : System.Web.UI.Page
    {
        static string sqlstr;   //sqlstr定义在这里 
        ...............
    }
    gridview allowpage =  true
    protected void btnQuery_Click(object sender, EventArgs e)
    {
    ...........(这时候生成了sqlstr)
            SqlDataSource1.SelectCommand = sqlstr;
            SqlDataSource1.DataBind();
            GridView1.DataSource = SqlDataSource1;
            GridView1.DataBind();
    }protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
            SqlDataSource1.SelectCommand = sqlstr; //这时候sqlstr已经为NaN了.
            SqlDataSource1.DataBind();
            this.GridView1.PageIndex = e.NewPageIndex;
            this.GridView1.DataBind();
    }
      

  11.   

    点击第二页的时候,有page_load事件应该是在 page_load的时候,就把sqlstr清空了page_load里没有操作.
      

  12.   

    if(!IspostBack)
    {
        //绑定的代码
    }
      

  13.   

    to net_lover(【孟子E章】) 那现在清楚了吗?有什么办法?谢谢!
      

  14.   

    to wyhao() 
    这时候都没有生成sql语句,没法绑定.
      

  15.   

    突然发现pageIndexChanging不会触发?请问还要设置什么?奇怪了。.
      

  16.   

    其实我的问题就是怎么在一个页面里面保存这个页面可用的全局变量.用viewstate的方法就可以了。是我自己开始的时候用错了,谢谢大家了。