Как получить доступ к динамически загружаемому серверному элементу управления главной страницы на странице содержимого?
Я создал главную страницу и со страницы содержимого загрузил некоторые элементы управления сервером на главную страницу.
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("ctl00$ContentPlaceHolder1$reset", "", true, "", "", 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 на вашу главную страницу.