用于多个复选框上的循环

时间:2013-08-30 07:39:51

标签: c# asp.net

我有名为CheckBox1,CheckBox3,CheckBox5,CheckBox7,CheckBox9,CheckBox11的复选框。我想迭代这些复选框并想要禁用它们。我写得像这样

for (int i=1; i < 12; i++)
{              
    ((CheckBox)(i.ToString())).Enabled = false;
    i=i+2;
}

但这不是正确的方法。请帮忙

3 个答案:

答案 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; 
      }
   }
}