2013-05-27 1 views
0

Я добавляю динамически TextBox в placeholder на кнопку, щелкнув в этом.Динамический контроль автоматически удаляется из PlaceHolder на кнопке Нажмите

Когда все текстовые поля загружены, я вношу изменения в значения и снова. Нажмите другую кнопку, чтобы сохранить значения в SharePoint List. Но когда я нажимаю кнопку «Сохранить», и я проверил местозаполнитель, отладив его, я обнаружил, что в заполнитель не было никакого контроля.
Я добавляю элементы управления нравится следующим образом:

TextBox[] tb = new TextBox[item_ans.Count]; 
Literal[] lt = new Literal[item_ans.Count]; 
for (int j = 0; j < item_ans.Count; j++) 
{ 
    ans_id.Add(item_ans[j]["ID"].ToString()); 
    tb[j] = new TextBox(); 
    tb[j].ID = "tb_ans" + (j + 1).ToString(); 
    tb[j].Text = item_ans[j]["Title"].ToString(); 
    lt[j] = new Literal(); 
    lt[j].Text = "<br/>"; 
    pl_hd_ans.Controls.Add(tb[j]); 
    pl_hd_ans.Controls.Add(lt[j]); 
} 

И на кнопку Сохранить нажмите Я Получение этих TextBoxes Как следующим образом:

int n = Convert.ToInt32(ViewState["totalAns"].ToString()); 

foreach (var i in ans_id) 
{ 
    var item_ans = list_ans.GetItemById(i); 
    clientContext.Load(item_ans); 
    clientContext.ExecuteQuery(); 

    for (int k = 0; k < n; k++) 
    { 
     TextBox tb = (TextBox)pl_hd_ans.FindControl("tb_ans" + (k + 1).ToString()); 
     item_ans["Title"] = tb.Text; 
     item_ans.Update(); 
     clientContext.Load(item_ans); 
     clientContext.ExecuteQuery(); 
    }     
} 

Но в этом я проверяю управления Заполнитель, что были 0. Может ли кто-нибудь помочь мне решить эту проблему?

+1

TextBox [] tb = новый TextBox [item_ans.Count]; tb НЕ должна быть локальной переменной, она должна быть членом класса или свойством? В противном случае tb теряется, когда он выходит за рамки функции? – David

+0

Thankx @David ... :) –

+0

Hey Stil не получает контроль. Опять же, элементы управления являются 0 in placeholder ... –

ответ

3

Я принимаю его ASP.NET WebForms, о чем мы говорим здесь.

Когда вы динамически добавляете элементы управления на веб-страницу, вам необходимо воссоздать их на каждой последовательной обратной передаче. Причина этого заключается в том, что динамически созданные элементы управления отсутствуют в файле .aspx или в представлении, поэтому asp.net не может знать, что он должен воссоздать эти элементы управления. Поэтому вы сами должны воссоздать их в инициализированном событии (до загрузки страницы), включая добавление любых обработчиков событий, которые вам нужны.

google about it.