динамическая загрузка usercontrols - проблема обратной передачи - PullRequest
2 голосов
/ 21 октября 2011

Я пытаюсь загрузить usercontrol динамически на странице aspx, однако это работает, но я получаю проблемы обратной передачи ??У меня есть кнопка изображения на usercontrol, которую я хочу показать изображение, однако, когда я нажимаю на кнопку, страница обновляется и не показывает изображение ?.У меня есть заполнитель на странице aspx и код бэкенда, у меня есть это:

 protected void Page_Load(object sender, EventArgs e)
 {      

     if (!IsPostBack)
     {
            Control uc = Page.LoadControl("~/UserControls/Mycontrol.ascx");
            placeholder1.Controls.Add(uc);

     }
 }

Нужно ли мне что-то делать в page_preinit или page_init ??

Ответы [ 3 ]

5 голосов
/ 21 октября 2011

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

2 голосов
/ 21 октября 2011

Динамические элементы управления, добавленные на страницу, должны добавляться при каждой обратной передаче, а не только над первой.Удалить условие !IsPostBack.Во-вторых, они должны быть добавлены во время инициализации или preinit, потому что таким образом, viewstate будет захвачено и восстановлено правильно (ASP.NET восстанавливает viewstate между событиями init и load).

1 голос
/ 21 октября 2011

Дайте элементу управления идентификатор, а также загрузите элемент управления в Page_init

uc.ID = "your id";
...