如何确定是否选中了动态创建的复选框

本文关键字:动态 创建 复选框 何确定 是否 | 更新日期: 2023-09-27 18:37:02

我在 ASP.NET 网站上创建了一个动态CheckBox Page_Load活动。

这是代码

 public CheckBox[] chk;
 chk[i] = new CheckBox();
 chk[i].ID = "chk" + dt1.Rows[i]["SubjectName"].ToString();
 chk[i].Text = dt1.Rows[i]["SubjectName"].ToString();                   
 PanelSubject.Controls.Add(chk[i]);

我以后如何确定以这种方式创建的CheckBox是否被用户选中?

如何确定是否选中了动态创建的复选框

您应该为该动态创建的复选框注册事件,如下所示:

 public CheckBox[] chk;
 chk[i] = new CheckBox();
 chk[i].ID = "chk" + dt1.Rows[i]["SubjectName"].ToString();
 chk[i].Text = dt1.Rows[i]["SubjectName"].ToString();                   
 chk[i].CheckedChanged += WebForm1_CheckedChanged;
 PanelSubject.Controls.Add(chk[i]);

 void WebForm1_CheckedChanged(object sender, EventArgs e)
 {
      throw new NotImplementedException();
 }

你还需要保持chk[i].AutoPostBack = true;

使用 javascript

在您的脚本中:

    var x=document.getElementById("IdCheckbox").checked
if(x==1)
{
//checked
}
else
{
// unchecked
}

function validate() {
        if (document.getElementById('idofcheckbox').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }

或者如果你使用的是jQuery,那么

if($("#idofcheckbox").is(':checked'))
      // checked
else
     // unchecked

另一种方法

$("#idcheckbox").attr("checked") ? alert("Checked") : alert("Unchecked");

由于所有复选框都在面板中,并且您已为所有复选框分配了ID,因此您只需使用方法Findcontrol,该方法通过ID查找面板中的控件

    string SubjectName = dt1.Rows[i]["SubjectName"].ToString();
    CheckBox currentCheckBox = PanelSubject.FindControl("chk" + SubjectName) as CheckBox;
    if( currentCheckBox !=null   )
    {
         if( currentCheckBox.Checked )
         {
             //here is your code 
             string alertMessage = string.Format("Subject {0} is checked !!!", SubjectName );
         }
     }