2009-09-15 3 views
0

У меня есть UpdatePanel и в нем регулярная панель. В Panel I динамически добавляются простые UserControls. Пользователь Usercontrol имеет кнопку и метку. Когда я нажимаю кнопку в элементе управления, он удаляет все элементы управления на панели, которые я добавил динамически. Может ли кто-нибудь помочь?Событие проблемы C# .NET 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, поэтому я использовал сеанс, который является плохим.

+0

Вы должны опубликовать код как для того, где вы добавляете элементы управления, так и для обработчика событий для события Click кнопки. –

ответ

0

Вы говорите, что вы добавляете пользовательский контроль динамически. У Вас есть такой код:

void Page_Load(...)  
{ 
    if (!IsPostback) 
     // AddUserControl here. 
} 

Вы должны добавить пользовательский элемент управления во время каждого запроса, также постбэков, потому что он не будет храниться в состоянии представления, что вы изменили дерево управления.

0

Проблема, с которой вы не воссоздали (например, в Page_Load) динамически добавленный элемент управления. Убедитесь, что элемент управления воссоздан на IsPostBack