我有一個自定義的ASP.NET控件。在它的初始化處理我添加一個委託到頁面的Init這樣的:ASP.NET:Page.Init woudln't fire
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if(someCondition())
{
this.Page.Init += delegate(object sender, EventArgs ee)
{
//some stuff
};
}
}
現在,如果我加入這個自定義控制頁面的HTML聲明,每一件事工作正常,在頁面的Init代表被調用。但是,如果我這個編程控件添加到頁面中,如:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
MyControl myControl = new MyControl { ID = "myControl" };
this.Page.Form.Controls.Add(myControl);
}
初始化,如果我連接到Page.Init控制獲取的調用,但該委託沒有。我在這裏做錯了什麼?
您可能會考慮使用ASP.NET的「ASP:Panel」控件,然後通過根據需要切換其「Visible」屬性來隱藏/顯示控件。 –
我不喜歡在頁面上添加額外的控件只是爲了處理其他控件的可見性 – Kizz