Функция pre-init не находит все динамические элементы управления - PullRequest
0 голосов
/ 23 апреля 2019

Мой сценарий: у меня 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);
    }

Проблема связана спервая строка, он только находит идентификатор кнопки, а не идентификатор текстового поля.Кажется, я не могу понять, что делать, кто-нибудь может помочь.

...