这是一个快速的代码片段,它似乎对我来说根本不起作用。我正在从一个文件中阅读,以创建一个单选按钮列表。问题是,当单击其中一个单选按钮时,我在代码中设置的事件处理程序不触发。我已经在调试模式下用换行符反复测试了它......都没有成功。我是否错过了一些明显的东西???
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条答案
按热度按时间gr8qqesn1#
在触发附加到该按钮的事件之前,需要在每个回发上添加该按钮。
如果你想一想,这是有道理的--如果按钮还没有被创建(在回发中),那么就没有按钮事件可以触发。按钮必须存在,才能触发附加到它的事件。
OnInit
页面事件是向页面添加动态控件的最合适位置。了解asp.net page life cycle。