向动态创建的复选框添加事件处理程序(aspx,c#)

所以我的问题是我想为动态创建的CheckBox添加一个事件处理程序。 我已经看过其他方法来做到这一点,并决定创建一个包含我的CheckBoxes的动态表是我的最佳选择。 我没有将这些CheckBox添加到控制树,因为我需要手动管理ViewState。 无论哪种方式,我的代码都以各种方式工作,除了我的CheckBox的CheckChanged事件不会触发。 我在pageLoad事件中将此事件处理程序添加到我的CheckBox中,但是,我尝试的任何页面事件似乎都给了我相同的结果:

CheckBox chbxLv1 = new CheckBox(); chbxLv1.ID = "DymanicallyCreatedIDForIdentification"; chbxLv1.AutoPostBack = true; chbxLv1.CheckedChanged += new EventHandler(this.checkChanged); /* Way lower in my code */ protected void checkChanged(object sender, EventArgs e) { //Some code goes here which never seems to execute... grrr } 

我认为这可能是ViewState最初的一个问题,并对此进行了相当多的研究。 我现在正在考虑添加一个事件处理程序,我正在做一些愚蠢的事情。 我不确定为什么这个事件永远不会发生,但我在向控件添加事件方面有点新意。 我需要代表吗?

–Roman

为了在ASP.NET页面生命周期中正确处理动态加载的控件,需要在OnInit期间(或者在LoadViewState之前)将它们添加到页面中,否则它们的状态信息将无法维护,事实上你可以,根据页面控件图中添加内容的方式/位置,破坏视图状态。