c# - 在 ASP 表中查找所有单选按钮

标签 c# asp.net for-loop foreach controls

我有一个包含大量单选按钮的 ASP 表。我想快速遍历它们并将 checked 属性设置为 false:

   <asp:Table runat=Server ID=tblSchedule>
            <asp:TableRow>
                <asp:TableCell>
    <asp:RadioButton runat=Server ID=rdb1/>
</asp:TableCell>
</asp:TableRow>
</asp:table>

但以下代码永远不会返回任何结果。

foreach (RadioButton rdb in tblSchedule.Controls.OfType<RadioButton>())
{
    rdb.Checked = false;
}

最佳答案

你需要遍历表格控件的层,像这样:

foreach (var tr in tblSchedule.Controls.OfType<TableRow>())
{
    foreach (var td in tr.Controls.OfType<TableCell>())
    {
        foreach (var rdb in td.Controls.OfType<RadioButton>())
        {
            rdb.Checked = false;
        }
    }
}

或者您也可以使用 LINQ,如下所示:

foreach (var rdb in tblSchedule.Controls.OfType<TableRow>()
    .SelectMany(tr => tr.Controls.OfType<TableCell>()
    .SelectMany(td => td.Controls.OfType<RadioButton>())))
{
    rdb.Checked = false;
}

关于c# - 在 ASP 表中查找所有单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904699/

相关文章:

亚马逊产品广告 API 的 C# 库

c# - 用户单击 TreeView 节点时 tabcontrol 发生变化

c# - 所请求的名称有效,但未找到所请求类型的数据

asp.net - 带有 DropDownList 的 ASPX EventValidation 错误

mysql - 排除某行数据的SQL语句

c# - 最简单的一个最快的 C# 表达式,它始终计算为 false 并且不生成编译器警告

c# - 深入了解 .NET 框架中的 EqualsHelper 方法

java - 循环,迭代得到意想不到的结果

C 不识别 var - 我一定是忽略了一些简单的东西。

javascript - 根据数组检查用户输入,充当猜测 Javascript