首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

private的有关问题

2012-01-18 
private的问题概念搞不清楚了,我做了个例子,第一个疑问:点击Button3_Click时,aa显示为空,可是将if (!IsPos

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; 

热点排行