2011-07-20 54 views
0

我想在用戶單擊某個按鈕(服務器端事件)時添加一個用戶控件。
我可以動態地添加控件,但自從在頁面生命週期中已經太遲了,該用戶控件上的事件將不會觸發(在此特定情況下爲該用戶控件中的按鈕)。在服務器端動態添加控件事件

我見過的關於這個的所有解決方案都是在Page_Init(或Page_Load)上添加控件,這是我在這裏無法做到的,控件也必須保持「動態」,所以我不能隱藏它,然後使其可見。

回答

0

這裏的問題是這樣的控件的ID是自動生成的,而asp.net通過ID匹配控件的事件。

我通過在每個動態控件創建後給它一個ID來解決這個問題。

Control control = LoadControl("~/Controls/" + controlName + ".ascx"); 
control.ID = "SomeId"; 
parentElement.Controls.Add(control);