在Placeholder中循环复选框

时间:2014-01-07 21:46:26

标签: c# asp.net webforms

我正试图找到一种方法来循环ASP占位符中“Checkbox”类型的所有控件,然后在循环中对控件执行某些操作。

问题是我无法访问控件......这是我到目前为止所拥有的......

string selections = "";

foreach (CheckBox ctrl in phProductLines.Controls.OfType<CheckBox>)
{
     selections += ctrl.Text + ", ";            
}

但我收到错误 - “Foreach无法对方法组进行操作”。

非常感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:7)

OfType是一种方法,因此您必须添加()

foreach (CheckBox ctrl in phProductLines.Controls.OfType<CheckBox>())
{
    // ...
}

顺便说一句,您可以使用LINQ和String.Join来获得所需的结果:

string result = string.Join(", ", phProductLines.Controls.OfType<CheckBox>()
            .Select(chk => chk.Text));

如果您只想要Checked复选框:

string result = string.Join(", ", phProductLines.Controls.OfType<CheckBox>()
            .Where(chk => chk.Checked)
            .Select(chk => chk.Text));