簡體   English   中英

事件問題C#.NET UserControl

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM