【问题标题】:Page_Init and Page_LoadPage_Init 和 Page_Load
【发布时间】:2011-10-08 06:41:09
【问题描述】:

页面包含自定义地址控件和复选框。为什么第二个示例代码可以正常工作,而第一个却不行?

//1
protected void Page_Init(object sender, EventArgs e)
{
  //doesn't work properly
   ucLegalAddress.Visible = !chkLegalAddress.Checked;
}


 //2
 protected void Page_Load(object sender, EventArgs e)
  {
    //works properly
     ucLegalAddress.Visible = !chkLegalAddress.Checked;
   }

【问题讨论】:

标签: asp.net webforms


【解决方案1】:

因为控件的视图状态是在初始化和加载事件之间加载的。这意味着 init 事件还不知道客户端的状态。

MSDN lifecycle overview

【讨论】:

    【解决方案2】:

    因为所有控件都是在 OnInit() 方法中创建的,所以在 Page_Init 和 Page_Load 之间调用。在 Page_Init 中,所有控件都为空。 Read more

    【讨论】:

    • 实际上不是null。它们有自己的默认属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多