private的问题
概念搞不清楚了,我做了个例子,
第一个疑问:
点击Button3_Click时,aa显示为空,可是将if (!IsPostBack)去掉,却可显示"第0次",为何?
第二个疑问:
当点击Button1或者Button2后,然后再点击Button3时,aa值仍为Page_Load里面设置的值,是不是aa值不可改变啊?
public partial class member_Default : System.Web.UI.Page
{
private string aa;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
aa = "第0次";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
aa = "第一次";
}
protected void Button2_Click(object sender, EventArgs e)
{
aa = "第二次";
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Write(aa);
}
}
------解决方案--------------------第一次加载页面时运行 !IsPostBack
点击按钮后 就不运行了,从新走一边程序,aa没有被赋值就是null。
如果去掉 if(!IsPostBack) 点击按钮,自然运行 aa = "第0次";
------解决方案--------------------IsPostBack 是否回传
第一次加载不是回传,运行,点击按钮后是回传,则不运行。
根Private没关系,因为这些事件和 aa都是一个类。
------解决方案--------------------每次你点击按钮的时候,都要触发Page_Load事件,如果你没加 if (!IsPostBack) ,当然 aa = "第0次";必做,你再
protected void Button3_Click(object sender, EventArgs e)
{
Response.Write(aa);
}
输出的当然是 第0次
------解决方案--------------------楼主想要做到这个效果,可以这样:
private static string aa;