如何确定是否选中了动态创建的复选框
本文关键字:动态 创建 复选框 何确定 是否 | 更新日期: 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 );
}
}