我想计算在我的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();
}
}
答案 0 :(得分:2)
检查循环后的计数,它应该按预期工作:
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";
}
}
答案 1 :(得分:0)
您没有禁用该按钮的代码。请尝试以下代码
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;
}
}
}
}
答案 2 :(得分:0)
如果您取消选中,则不会进入此
if (chkTest.Checked)
{
当您删除支票时,您还需要进行计算。
答案 3 :(得分:0)
您计算的是您计算的复选框数量,而不是已选中复选框的数量 因此,您的代码总是会被解雇。如果选中第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个,那么你只会启用,因为其他海报已经说你没有任何东西可以禁用它,所以它会保持启用状态。