我有名为CheckBox1,CheckBox3,CheckBox5,CheckBox7,CheckBox9,CheckBox11的复选框。我想迭代这些复选框并想要禁用它们。我写得像这样
for (int i=1; i < 12; i++)
{
((CheckBox)(i.ToString())).Enabled = false;
i=i+2;
}
但这不是正确的方法。请帮忙
答案 0 :(得分:4)
如果您拥有Checkbox1,Checkbox3等控件的ID,请尝试使用此类FindControl
。
for (int i = 1; i < 12; i+=2)
{
CheckBox cb = (CheckBox)Page.FindControl("Checkbox" + i);
cb.Enabled = false;
}
答案 1 :(得分:0)
愿这对你有所帮助。
foreach (Control c in Page.Controls)
{
if (c is CheckBox)
{
CheckBox myCheckBox = (CheckBox)c;
myCheckBox.Enabled = false;
}
}
这将禁用您拥有的所有CheckBoxes。
编辑:抱歉没有看到i
的+2。我的错。
答案 2 :(得分:0)
您的代码是否要为其ID结尾处有奇数的复选框设置enabled = false?然后这样做
foreach (Control ctrl in Page.Controls)
{
if (ctrl is CheckBox && ctrl.id.length > 9)
{
int chkboxNumber = int.Parse(ctrl.id.SubStr(9));
if ( chkboxNumber % 2 == 1) // Check for odd numbers
{
(CheckBox)ctrl.Enabled = false;
}
}
}