Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Серьёзная ошибка в ASP.NET 2.0 в EventHandler?  (Прочитано 4900 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Megabotan
Участник

ru
Offline Offline

« : 07-07-2007 13:36 » 

За всю мою практику работы в ASP.NET ни разу не удавалось динамически прицепить  обработчик события:         
Код:

            LinkButton LinkBtn = new LinkButton();
            LinkBtn.CommandArgument = "something";
            LinkBtn.Command += new CommandEventHandler(LinkBtn_Command);
            LinkBtn.Text = "Нажми, и ни фига не сработает";
            Form.Controls.Add(LinkBtn);
Этот код я пробовал помещать и в обработчик события Page_Load, и в Page_Init. Сам контрол всегда динамически добавляется, и свойство CommandArgument записывается (если вывести на страницу в виде текста), а вот событие не срабатывает при нажатие на ссылку.
Тоже самое и с LinkBtn.Click += new EventHandler(LinkBtn_Click);.
Аналогичная ситуация и с динамической привязкой события к обычному Button'у, добавленному на страницу "ручками".
Мне бы очень хотелось разъяснить ситуацию. Может секретное заклинание знать нужно? А черт его знает...
Я использую MasterPage в проектах, может из-за этого баг вылез?

P. S. Компилятор никаких ошибок не выдаёт, но на контрольную точку в обработчике события не заходит.
Значение AutoEventWireup у меня true.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 11-09-2007 10:48 » 

Цитата
За всю мою практику работы в ASP.NET ни разу не удавалось динамически прицепить  обработчик события:
Мало практиковался Улыбаюсь Внимательно, изучи последовательность построения страницы, особенно в части обработки событий Init и Load, и всё получится.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Megabotan
Участник

ru
Offline Offline

« Ответ #2 : 11-09-2007 12:54 » 

Да тут я разобрался. Это было из-за того, что подписка на события происходила в условии (!Page.IsPostBack). У меня просто стиль такой отстраивать страницу внутри этого условия и потом надеятся, что ViewState всё это сохранит.
Оказывается подписываться на событие надо всегда, т. е. ViewState не сохраняет информацию о подписке на событие. Никогда.
Вот так вот.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines