c# - 将事件处理程序添加到动态创建的复选框(aspx、c#)

标签 c# asp.net dynamic checkbox oncheckedchanged

所以我的问题是我想向动态创建的 CheckBox 添加事件处理程序。我已经研究过其他方法来执行此操作,并决定创建一个包含我的 CheckBoxes 的动态表对我来说是最好的选择。我没有将这些复选框添加到控件树中,因为我需要手动管理 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 的问题,并对此进行了大量研究。我现在想我在添加事件处理程序时做了一些愚蠢的事情。我不确定为什么这个事件永远不会触发,但我对向控件添加事件有点陌生。我这里需要代表吗?

--罗马字

最佳答案

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

关于c# - 将事件处理程序添加到动态创建的复选框(aspx、c#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8001213/

相关文章:

c# - 是否有用于简单程序集初始化的良好模式?

javascript - 如何在asp.net web表单应用程序中获取 'Enable CORS'?

asp.net - 表单 View 布局

winforms - TreeView 填充/绑定(bind)

c - 在函数中调整结构数组的大小

c - 使用 realloc 收缩矩阵

c# - WinForms DataGridView 替代品

c# - 如何在 Roslyn 中查找具有特定名称的字段类型

javascript - 如何在 Javascript 中获取下拉列表的值

c# - 将 INSERT 查询批处理到 SQL 2005/8 中的最有效和最简单的方法是什么