Visual Studio 动态添加的事件处理程序未激发

fruv7luv  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(163)

这是一个快速的代码片段,它似乎对我来说根本不起作用。我正在从一个文件中阅读,以创建一个单选按钮列表。问题是,当单击其中一个单选按钮时,我在代码中设置的事件处理程序不触发。我已经在调试模式下用换行符反复测试了它......都没有成功。我是否错过了一些明显的东西???

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);
gr8qqesn

gr8qqesn1#

在触发附加到该按钮的事件之前,需要在每个回发上添加该按钮。
如果你想一想,这是有道理的--如果按钮还没有被创建(在回发中),那么就没有按钮事件可以触发。按钮必须存在,才能触发附加到它的事件。
OnInit页面事件是向页面添加动态控件的最合适位置。
了解asp.net page life cycle

相关问题