Перемещение кнопки останавливает событие нажатия кнопки - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть кнопка, содержащаяся на панели, с событием щелчка, которая работает нормально.Однако когда пользователь нажимает другую кнопку, мне нужно переместить эту кнопку в другую панель (на самом деле это панель с modalpopupextender), поэтому я делаю такой код:

newPanel.Controls.Add(buttonPanel)

Все это перемещается ивыглядит хорошо.Однако теперь, когда кнопка нажата, она не запускает связанное событие.Я попытался повторно добавить событие в page_init с этим кодом

((Button)this.FindControl("serverModalSave")).Command += new CommandEventHandler(modalSave_Click);

Но безуспешно.Как я могу заставить эту кнопку вызывать событие щелчка при перемещении и почему она перестает работать при перемещении?

РЕДАКТИРОВАТЬ:

Эту кнопку необходимо добавитьна панель, указанную пользователем во время выполнения, поэтому нет способа определить, куда кнопка пойдет заранее.

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

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Вместо перемещения кнопки установите другую кнопку на другой панели в положение скрыто.

Скрыть кнопку, которую вы хотели переместить, и при необходимости показать скрытую.

Перемещение элемента управления меняет иерархию имен, и теперь кнопка не может быть найдена, а событие щелчка не можетfire.

Это связано с тем, как работает жизненный цикл страницы . Здесь - хорошая (хотя и несколько устаревшая) статья о том, как работает состояние представления - если вы поймете это, вы поймете, что пошло не так.

0 голосов
/ 23 декабря 2010

Если вы создаете кнопку на новой панели, то при нажатии этой кнопки вы заново создаете ее в обратной передаче?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...