1

我有名为 CheckBox1、CheckBox3、CheckBox5、CheckBox7、CheckBox9、CheckBox11 的复选框。我想遍历这些复选框并希望禁用它们。我是这样写的

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

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

4

3 回答 3

4

如果您有 Checkbox1、Checkbox3 等控件的 ID,请尝试FindControl像这样使用。

for (int i = 1; i < 12; i+=2)
{
  CheckBox cb = (CheckBox)Page.FindControl("Checkbox" + i);
  cb.Enabled = false;
}
于 2013-08-30T07:44:03.263 回答
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; 
      }
   }
}
于 2013-08-30T07:50:22.377 回答
0

愿这对你有所帮助。

foreach (Control c in Page.Controls)
{
   if (c is CheckBox)
   {
      CheckBox myCheckBox = (CheckBox)c;
      myCheckBox.Enabled = false;
   }
}

这将禁用您拥有的所有复选框。编辑:抱歉没有在i. 我的错。

于 2013-08-30T07:44:27.613 回答