如何找出动态创建的复选框是否被选中
How to find out whether a dynamically created checkbox was checked or not
我在 ASP.NET 网站的 Page_Load
活动中创建了动态 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();
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 );
}
}
我在 ASP.NET 网站的 Page_Load
活动中创建了动态 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();
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 );
}
}