如何在子集容器中找到选中的单选按钮

本文关键字:单选按钮 子集 | 更新日期: 2023-09-27 18:24:51

我有一个单选按钮的列表,而不是单选按钮列表,我需要找出选中了哪一个。容器是一个已知的wizardstep中的div。由于只有wizardstep id是已知的,如何在其下的div中找到单选按钮?结构是这样的:

<asp:WizardStep runat="server" ID="TypeStep" StepType="Step" Title="Business Type">
   <div id="A" runat="server">
      <asp:radiobutton .....
   </div>
   <div id="B" runat="server>
      <asp:radiobutton .....
   </div>
    ...
</asp:WizardStep>

我的代码如下:

foreach (RadioButton rb in TypeStep.Controls.OfType<RadioButton>()){
  ...
}

但它找不到任何单选按钮,除非我将TypeStep更改为"A"div,但在我的代码中,哪个div是不知道的。我只能使用TypeStep来搜索选中的单选按钮。

知道吗?

如何在子集容器中找到选中的单选按钮

So Controls属性只返回一个级别的子控件。我建议您创建一个扩展,以递归方式搜索控件。我还建议你以最大深度传球。这将是更通用的方式。但是,在您的示例中,您需要另一个嵌套的for循环。此处编码:

foreach (Control c in TypeStep.Controls)
{
    foreach (RadioButton rb in c.Controls.OfType<RadioButton>())
    { 
          ... 
    }     
}

这将向下搜索另一个级别。如前所述,Controls属性一次返回一个级别。