当前位置:编程学习 > C#/ASP.NET >>

初学,问个简单的问题

public string str;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
            str = "1";
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write(str);
    }

==========================================
点击输出的是空,似乎是因为执行click前要刷新一下页面,而不会执行到if中的语句,所以str为空

这个问题应该怎么解决啊?str的赋值一定要在if里的.. --------------------编程问答-------------------- public string str;
    protected void Page_Load(object sender, EventArgs e)
    {

            str = "1";
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write(str);
    } --------------------编程问答-------------------- 用ViewState可以解决问题
public string str
{
get
{
return ViewState["str"] == null ? string.Empty : ViewState["str"].ToString();
}
set
{
ViewState["str"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
str = "1";
}
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(str);
} --------------------编程问答-------------------- public Static string str; --------------------编程问答-------------------- 哦..tks
用Static就好用了...
不是很理解static..麻烦哪位稍微给讲一下? --------------------编程问答-------------------- 楼主打算出来什么效果并没有说清楚啊 --------------------编程问答-------------------- static 声明的变量是静态变量,是属于类的而不是属于成员

你第一点击后,str赋了初值1,以后再点击它能保持刚才的值

不过事实上,虽然这样用起来简单,但从效率上来说,用ViewState更好 --------------------编程问答-------------------- 静态的最好还是少用 --------------------编程问答-------------------- 哦..谢谢大家..

如果我这个str是个实体类呢??用哪个效率更好? --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 那更要用ViewState了.. --------------------编程问答-------------------- 试了一下,用viewstate的话,html会多出来2k多的viewstate....
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,