今天调试程序,发现if (!Page.IsPostBack)里面的内容执行了两次,相不通。后来,找了很多资料,总算查出原因。
一方面,在aspx一开始中写了 AutoEventWireup="true" ,这样page_load会自动执行一次。
另一方面,生成的后台文件中有
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
原来自动绑定了一次, 生成的代码又手工绑定了一次,所以要执行两次,去掉手工的部分,总算正常了, 原来,以前程序执行两次,我一直以为其它哪里写错了。