c# - 动态(以编程方式)添加复选框和 checkedchanged 事件

标签 c# asp.net event-handling

我在以编程方式添加几个复选框和事件处理程序时遇到了一些问题。复选框都显示正常,但单击时它们不执行任何操作。有谁知道我做错了什么?

我的代码:

foreach (Statement i in theseStatements)
{
    box = new CheckBox();
    box.Text = i.StatementText;
    box.AutoPostBack = true;
    box.CheckedChanged += new EventHandler(this.CheckedChange);
    PlaceHolder.Controls.Add(box);
}

protected void CheckedChange(object sender, EventArgs e) 
{
    CheckBox x = (CheckBox)sender;
    Instructions.Text = "change";            
    WorkPlaceHazardsBox.Text += x.Text;
} 

最佳答案

您应该执行以下操作:

  1. 为您在 foreach 循环中创建的每个 CheckBox 实例设置 ID 属性。
  2. 对于 PostBacks,确保在引发控制事件之前在页面生命周期的某个时间点创建您的 CheckBoxes 并附加 CheckedChanged 事件处理程序

关于c# - 动态(以编程方式)添加复选框和 checkedchanged 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/626889/

相关文章:

asp.net - 调用 VirtualPathUtility.ToAbsolute 的单元测试代码

java - JFrame 组件有时无法加载

java - 注册 Java 事件时,通常是否允许重复的监听器?

c# - 如何对使用控制台类的类进行单元测试?

c# - ASP.NET核心6 : permit Azure AD authentication and local authentication

c# - Powershell 替换功能在替换时将逗号视为点

c# - 向查询添加多个参数

asp.net - 有没有一种方法可以在全局ASP.Net异常中显示变量值?

c# - 我的 Webforms 数据存储在哪里?

android - 如何处理ListView中的多次点击?