计算选中的复选框的数量
本文关键字:复选框 计算 | 更新日期: 2023-09-27 18:12:38
我想计算在我的asp.net页面上被选中的复选框的数量,如果count = 5然后将按钮状态从禁用更改为启用
我不明白,因为当我清除一个复选框中的复选(从5个复选框选中到4个复选框选中),按钮状态是启用的,而不是改变禁用状态。
我的代码如下。
我将非常感谢你在解决这个问题上给我的任何帮助。
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkTest = (CheckBox)sender;
GridViewRow grdRow = (GridViewRow)chkTest.NamingContainer;
int count = 0;
if (chkTest.Checked)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("chkSelect");
count++;
if (chk.Checked && count == 5)
{
btnUpdate.Enabled = true;
btnUpdate.CssClass = "enabledImageButton";
}
}
}
}
编辑1 Page_Load代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridViewBind();
}
}
检查循环后的计数,它应该像预期的那样工作:
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkTest = (CheckBox)sender;
GridViewRow grdRow = (GridViewRow)chkTest.NamingContainer;
int count = 0;
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("chkSelect");
if (chk.Checked)
{
count++;
}
}
if(count==5)
{
btnUpdate.Enabled = true;
btnUpdate.CssClass = "enabledImageButton";
}
else
{
btnUpdate.Enabled = false;
btnUpdate.CssClass = "disabledImageButton";
}
}
如果你取消选中,那么它将不会出现在
if (chkTest.Checked)
{
当你删除检查时,你还需要做计算
你没有代码来禁用按钮。试试下面的代码
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkTest = (CheckBox)sender;
GridViewRow grdRow = (GridViewRow)chkTest.NamingContainer;
int count = 0;
btnUpdate.Enabled = false;
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("chkSelect");
if (chk.Checked)
{
count++;
if(count >=5)
{
btnUpdate.Enabled = true;
btnUpdate.CssClass = "enabledImageButton";
break;
}
}
}
}
您正在计算与您计数的复选框的数量,而不是选中复选框的数量因此,如果第5个复选框被选中,无论前4个复选框的状态如何,你的代码总是会"触发"。
看起来你想要:
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chk = (CheckBox)row.FindControl("chkSelect");
if (chk.Checked) count++;
if (count >= 5)
{
btnUpdate.Enabled = true;
btnUpdate.CssClass = "enabledImageButton";
break; //Avoid hitting more rows than necessary
}
}
这意味着你将只有启用如果至少5被选中,因为其他海报说你没有什么可以禁用它,所以它将保持启用