Мой сценарий: у меня 3 переключателя.при нажатии каждый из них показывает различный набор текстовых полей, а кнопка создается динамически.Моя проблема заключается в том, что когда я нажимаю на кнопку, я теряю все динамически созданные элементы управления.
В конце концов я обнаружил, что инициализирую динамический элемент управления на Page_Preinit, как показано ниже.
protected void Page_PreInit(object sender, EventArgs e)
{
List<string> keys = Request.Form.AllKeys.Where(key => key.Contains("txtDynamic")).ToList();
int i = 1;
foreach (string key in keys)
{
TextBox CPDT = new TextBox();
CPDT.ID = "test" + i.ToString();
CPDT.CssClass = "form-control";
Label lblCPD = new Label();
lblCPD.ID = "txtDynamiclbl" + "test" + i.ToString();
lblCPD.CssClass = "form-control-label";
lblCPD.Text = textbox[i].ToString();
CPDPlaceHolder.Controls.Add(lblCPD);
CPDPlaceHolder.Controls.Add(CPDT);
i++;
}
Button callSoap = new Button();
callSoap.ID = "txtDynamicSearch" + servicename;
callSoap.Text = "Search";
callSoap.CssClass = ".btn-info";
callSoap.CommandArgument = "test";
callSoap.Click += new EventHandler(btnsoap);
callSoap.EnableViewState = true;
CPDPlaceHolder.Controls.Add(callSoap);
}
Проблема связана спервая строка, он только находит идентификатор кнопки, а не идентификатор текстового поля.Кажется, я не могу понять, что делать, кто-нибудь может помочь.