先定义一个变量:protected string StrSql;
然后:
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
//下面这个SQL语句是动态生成的
StrSql="select id,province,cointro from CompanyTable......";
//调用方法
Bind(StrSql);
......然后再调用方法:
private void ChangePage(object src,Wuqi.Webdiyer.PageChangedEventArgs e)
{
pager.CurrentPageIndex=e.NewPageIndex;
Bind(StrSql);
}声明方法:
private void Bind(string sql)
{
OleDbCommand cmd=new OleDbCommand(""+StrSql+"",conn);
......
}
现在的问题是:在Page_Load事件中调用完之后,再在ChangePage中调用时,StrSql的值就变成null了,怎么样能让StrSql的值保存下来?即StrSql在Page_Load中和ChangePage中是一样的?
然后:
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
//下面这个SQL语句是动态生成的
StrSql="select id,province,cointro from CompanyTable......";
//调用方法
Bind(StrSql);
......然后再调用方法:
private void ChangePage(object src,Wuqi.Webdiyer.PageChangedEventArgs e)
{
pager.CurrentPageIndex=e.NewPageIndex;
Bind(StrSql);
}声明方法:
private void Bind(string sql)
{
OleDbCommand cmd=new OleDbCommand(""+StrSql+"",conn);
......
}
现在的问题是:在Page_Load事件中调用完之后,再在ChangePage中调用时,StrSql的值就变成null了,怎么样能让StrSql的值保存下来?即StrSql在Page_Load中和ChangePage中是一样的?
解决方案 »
- 能够使用system.net.webclient来将对方(跨域)页面的XML数据下载的本地使用吗?
- 用MVC一般结合 什么ajax框架
- 关于marquee中显示文字+图片的排版问题
- 母版的中link方式调用css无效
- 我想用存储过程实现多条件查询,但不知道........................
- 新手求助!存储过程带输出参数的问题????
- 為什么在代碼取中模板列中Label的Text總是為空?
- 如何把textbox里更改的信息自动保存到数据库里去?
- 最近想学ASP.NET,可是平台没有建好,帮我者给分
- 如何隐藏 OpenFile.aspx?FileID=XXX 中的FileID?
- DataGrid问题,请教高手!
- 我的页面上有iframe0和iframe1,iframe0指向1.aspx,iframe1指向2.aspx,在2.aspx中有个按钮Button1,现在我想在1.aspx的后台取Button1的值,
private string StrSql
{
get
{
if (ViewState["StrSql"] != null)
{
return (String)ViewState["StrSql"];
}
else
return "";
}
set
{
ViewState["StrSql"] = value;
}
}
像我那样声明成全局变量不行吗?
写在if(!this.IsPostBack)外面不行,因为我还要动态查询,那样会产和错误
像我那样声明成全局变量不行吗?=================
每请求一次这个page 类会重新初始化。虽然是post back但是却是同一类page类的一个
新的实例在运行,所以strSql会丢失。
SomeFunc根据条件生成sql, 我只是指出原因, 你可以根据具体情况修改嘛.
写在if(!this.IsPostBack)外面不行,因为我还要动态查询,那样会产生错误
谢谢!我按照你的方法去做,没有问题,解决了,我再加20分,只想请您概括的讲一下个中原由,为什么要那样写成一个属性?
以前我在C/S中写C#程序的时候,我只要在类中这样声明StrSql;:
public class hangye_list_1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
//声明全局变量StrSql
public string StrSql;然后就可以在类中的各个方法和事件中使用StrSql了,现在写B/S程序的时候这样做好像不行,这是为什么?
string StrSql="";
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
//下面这个SQL语句是动态生成的
StrSql="select id,province,cointro from CompanyTable......";
//调用方法
Bind(StrSql);
......