UserControl с кнопкой - когда UC динамически добавляется на другую страницу - PullRequest
2 голосов
/ 20 октября 2008

Управление пользователем с помощью кнопки - когда пользователь динамически добавляется на другую страницу, я теряю обработчик кнопки.

т.е.: у меня есть 1 пользовательский контроль с 1 кнопкой - кнопка имеет обработчик событий в коде позади. Когда я добавляю UserControl на страницу программно, обработчик кнопки не срабатывает. Любая идея о простом способе исправить это.

Обычно, когда я динамически добавлял элементы управления на страницу, мне приходилось повторно подключать обработчики событий для каждого поста назад, но я надеялся, что эта кнопка содержалась в UserControl, а пользовательский интерфейс был добавлен динамически, и я не потерял бы это - кажется, не так - есть ли лучший способ сделать это? У моего usercontrol со временем появятся МНОГИЕ кнопки, и я не хочу, чтобы они каждый раз переподключались со страницы, которая динамически добавляет usercontrol.

Ответы [ 4 ]

2 голосов
/ 20 октября 2008

Вы будете использовать Page.LoadControl для добавления элемента управления ascx в обработчик события OnInit страницы (хотя я сделал это в обработчике события Load, и он работает, но в документации указан OnInit)

Ваш пользовательский элемент управления (и страница) должен связывать свои события для каждой загрузки и обратной передачи. например this.buttonID.Click + = new System.EventHandler (this.buttonID_Click);

Если вы делаете это, то все должно работать, если нет, проверьте разметку aspx / ascx, так как ошибочные символы, такие как лишние символы <где-то, могут сломать страницу, но все равно будут отображаться в браузере в порядке. </p>

0 голосов
/ 21 октября 2008

Вы добавляете его в ajax UpdatePanel? Панель обновлений перехватит обратную передачу.

0 голосов
/ 20 октября 2008

Когда вы добавляете любой элемент управления динамически, вы должны создать его каждый раз на странице хоста в событии Page_Init.
Если вы делаете это, убедитесь, что обработчик события click связан с OnInit UserControl. Я думаю, что вы не создаете динамический контроль каждый раз.

0 голосов
/ 20 октября 2008

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

...