回 帖 发 新 帖 刷新版面

主题:帮帮忙,想了一天都想不出解决的办法,关于保持数据值的问题!

我要在页面第一次加载时提取数据库的值,提交页面时用这个值,所以我定义了页面级变量,如:
protected void Page_Load(object sender, EventArgs e)
{
 string role;
 if(!IsPostBack())
 {
   role="Manager";
 }
}
protected void Button_Click(object sender, EventArgs e)
{
 txb.Text=role;
}
但是这样是不成功的,因为当提交页面时会重加载次页面,这时role又变会了空值。
原因我知道,但是想不出有什么好的方法,目前在用session["role"]解决,但是这样会浪费很多资源,请问有没有好的方法解决,万分感谢!

回复列表 (共5个回复)

沙发

//首先表示2点疑问. 
1  role 的作用域够么 ?
2  IsPostBack() 这个是什么对象的什么方法 ?

板凳

你这样试试:
string role;
    protected void Page_Load(object sender, EventArgs e)
    {
        role = "Manager";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Button1.Text = role;
    }

3 楼

如果上面不是你想要的还可以:

    static string role;
    protected void Page_Load(object sender, EventArgs e)
    {
        
        if (!IsPostBack)
        {
            role = "Manager";
        }

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Button1.Text = role;
    }

4 楼

不好意思,笔误,IsPostBack是个属性,不是方法,它是Page的属性

你的第二方法解决了问题,非常感谢!

5 楼

应该加载在页面装载中!因为每次提交都会猝发此过程!

我来回复

您尚未登录,请登录后再回复。点此登录或注册