Динамически добавленный обработчик событий не срабатывает - PullRequest
0 голосов
/ 13 октября 2010

Вот небольшой фрагмент кода, который, похоже, не работает для меня. Я читаю из файла, чтобы создать список переключателей. Проблема в том, что при нажатии одной из переключателей не запускается обработчик событий, который я настроил в коде. Я проверял это снова и снова в режиме отладки с переносами строк ... все без удачи. Я что-то упускаю здесь очевидное ????

Спасибо заранее!

 strLine = strLine.Trim();
 System.Diagnostics.Debug.WriteLine("[3-a] ship by date - date: " + strLine);

 try{ shipByDate = (Convert.ToDateTime(strLine)); }
 catch (Exception e) { shipByDate = new DateTime(); }

 shipByDesc = sr.ReadLine().Trim();
 System.Diagnostics.Debug.WriteLine("[3-b] ship by date - desc: " + shipByDesc);

 RadioButton button = new RadioButton();
 button.Text = shipByDesc + " - " + shipByDate.ToString("MM/dd/yyyy");
 button.Checked = false;
 button.GroupName = "shipByOptions";
 button.ID = "shipByRadio" + count;

 //button.EnableViewState = true;
 button.AutoPostBack = true;
 button.CheckedChanged += new EventHandler(shipBy_CheckedChanged); // <-- doesn't work!!!

 //form1.Controls.Add(button);
 shipByPlaceHolder.Controls.Add(button);

1 Ответ

6 голосов
/ 13 октября 2010

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

Если вы подумаете об этом на мгновение, это будет иметь смысл - если кнопка не была создана (наpostback), то нет событий кнопок, которые могут срабатывать.Кнопка должна существовать, прежде чем события, связанные с ней, могут быть запущены.

Событие страницы OnInit является наиболее подходящим местом для добавления динамических элементов управления на страницу.

Прочитайте о жизненном цикле asp.net .

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