日期:2014-05-18  浏览次数:20412 次

请大家帮帮忙啊!!sqldatasource问题
我使用语句:  

public   static   string   sqlstr;  
(类变量)  

然后动态给sqldatasource赋值  
sqldatasource1.selectcommand   =   sqlstr;  
sqldatasource1.databind();  
gridview1.datasource   =   sqldatasource1;  
gridview1.databind();  

这个gridview是有分页的.  

点击第二页的时候,发现sqlstr变成了NaN,是不是page_load的时候把它又清空了?  

这样gridview1就没有数据了.请问大家有什么解决办法?  

非常感谢了....谢谢关注..  


------解决方案--------------------
把sqlstr存起来。比如ViewState
------解决方案--------------------
up
------解决方案--------------------
顶!
------解决方案--------------------
pageload里面用Page.IsPostBack
分页里面用方法 bind()
------解决方案--------------------
这样不好.
public static string sqlstr;
sqlstr = "select xxx from xxxxtable where xx= "
需要给数据源赋值的时候,就动态的把后面的参数加上
sqlstr = sqlstr + someArgus;
这个someArgus可以用QueryString 或者Cookie 等等多种方式来传到服务器端.
------解决方案--------------------
pageload里面用Page.IsPostBack,在里面初始化sqlstr的值,就初始化一次,
分页里面用方法 bind()

------解决方案--------------------
SqlDataSource的Init事件里写sql
------解决方案--------------------
if(!Page.IsPostBack)
{
.................
this.GridView1.DataBind();
}


------解决方案--------------------
在page_indexchanging里,已经有写了

this.GridView1.PageIndex = e.NewPageIndex;
this.GridView1.DataBind(); //这里没有重新得到数据源,直接DataBind()当然是什么也没有了


如果你的代码不多,相关代码都贴切一下吧,就你现在的描述,上面的问题看不出具体原因