[英]Event problem C# .NET UserControl
我有一個UpdatePanel,並且其中有一個常規面板。 在面板中,我動態添加簡單的UserControls。 Usercontrol有一個按鈕和一個標簽。 當我單擊控件中的按鈕時,它將刪除面板中動態添加的所有控件。 有人可以幫忙嗎?
int controlID = 0;
List<Control> cc = new List<Control>();
if (Session["ControlsCompleted"] != null)
{
cc = Session["ControlsCompleted"] as List<Control>;
for (int i = 0; i < cc.Count; i++)
{
pnlCompletedEducation.Controls.Add(cc[i]);
}
controlID = cc.Count;
}
Controls_TestWebUserControl ct = LoadControl(@"Controls\TestWebUserControl.ascx") as Controls_TestWebUserControl;
ct.ID = controlID.ToString();
cc.Add(ct);
ct.EnableViewState = true;
pnlCompletedEducation.Controls.Add(ct);
txtInstitutionName.Text = controlID.ToString();
List<Control> lc = new List<Control>();
for (int i = 0; i < pnlCompletedEducation.Controls.Count; i++)
{
lc.Add(pnlCompletedEducation.Controls[i]);
}
Session["ControlsCompleted"] = lc;
這就是我將控件添加到面板的方式。 我不得不將它們保留在某個地方,而ViewState無法做到這一點,所以我使用了Session,這是一個壞主意。
您遇到的問題是尚未重新創建(例如在Page_Load處)動態添加控件。 確保在IsPostBack上重新創建控件
您說要動態添加用戶控件。 您是否有這樣的代碼:
void Page_Load(...)
{
if (!IsPostback)
// AddUserControl here.
}
您需要在每個請求以及回發期間添加用戶控件,因為它不會存儲在修改了控件樹的視圖狀態中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.