初学,问个简单的问题
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