Как получить доступ к динамически загружаемому серверному элементу управления главной страницы на странице содержимого?

Я создал главную страницу и со страницы содержимого загрузил некоторые элементы управления сервером на главную страницу.

 Control ctrl = Page.ParseControl(result);
 ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
            cph.Controls.Add(ctrl);

Теперь мне нужно получить доступ к странице "Элементы управления в контенте". Но указанный идентификатор изменяется после анализа элементов управления. Похоже ниже.

 <input type="submit" name="ctl00$ContentPlaceHolder1$reset" value="reset" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ContentPlaceHolder1$reset&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_ContentPlaceHolder1_reset" />

Итак, как я могу получить доступ к этим элементам управления на странице содержимого?

1 ответ

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

Control ctrl = Page.ParseControl(result);
ctrl.ID="ContentPlaceHolder1_reset";
ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
cph.Controls.Add(ctrl);

Надеюсь, что это работает для вас.

Обновить:

Если вы добавляете список TextBox, вы можете указать идентификатор для TextBox следующим образом

for (int i = 1; i < 11; i++)
    {
        TextBox t1 = new TextBox();
        t1.ID = "TextBox" + i;
        ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
        cph.Controls.Add(t1);
    }

Здесь я добавляю 10 TextBox на вашу главную страницу.

Другие вопросы по тегам