如何检查我在 C# 中动态创建的复选框

本文关键字:动态 创建 复选框 何检查 检查 | 更新日期: 2023-09-27 18:30:17

这是我的代码。问题是我可以在 checbox1_checkedChanged() 中获取第一组复选框,但不能获得第二组复选框。 我做错了什么?

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
     CheckBox checkthatBox= (CheckBox)sender;
        if (checkthatBox.Checked)
        {
            for(int i=0; i<4; i++)
            {
                CheckBox ch = new CheckBox();
                ch.ID = "ch" + i;
                ch.Text = "site "+i;
                ch.CssClass = "listItemWidth";
                ch.AutoPostBack= true;
                ch.ViewStateMode = System.Web.UI.ViewStateMode.Enabled;
                ch.CheckedChanged += ch_CheckedChanged;
                sitesPanel.Controls.Add(ch);
            }
        }
    }
    void ch_CheckedChanged(object sender, EventArgs e)
    {
        Response.Write("YO");
        CheckBox checkthatBox = (CheckBox)sender;
        if (checkthatBox.Checked)
        {
            for (int i = 0; i < 4; i++)
            {
                CheckBox ch = new CheckBox();
                ch.ID = "dl" + i;
                ch.Text = "Document Library " + i;
                ch.CssClass = "listItemWidth";
                ch.CheckedChanged += ch_CheckedChanged;
                docLibPanel.Controls.Add(ch);
            }
        }
        throw new NotImplementedException();
    }

如何检查我在 C# 中动态创建的复选框

TRY 设置

EnableViewState=false

动态创建的控件

似乎第二组复选框是在页面生命周期的后期重新创建的。

如果您想在

Postback 之后访问它们或处理来自它们的事件,则应每次在 Page_Init 上创建动态控件。

有关详细信息,请参阅以下链接:http://msdn.microsoft.com/en-us/library/hbdfdyh7%28v=vs.100%29.aspx

在这里你可以看到同样的问题。