2012-02-15 9 views
0

私はradiobuttonlistではなくラジオボタンのリストを持っています。どのラジオボタンがチェックされているかを調べる必要があります。コンテナは、既知のウィザード内でdivになります。ウィザードステップIDだけが分かっているので、その下のdiv内のラジオボタンを見つける方法は? 構造は、このようなものです:サブセットコンテナ内のチェックされたラジオボタンを見つけるにはどうすればいいですか?

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

しかし、私は「」のdivが、私の中にTypeStepを変更しない限り、それは、任意のラジオボタンを見つけることができません。

<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> 

次のように私のコードですコードは、divは分かっていません。 TypeStepを使用して、チェックされたラジオボタンを検索することしかできません。

答えて

1

So Controlsプロパティは、1つのレベルの子コントロールのみを返します。再帰的にコントロールを検索する拡張機能をcreteにお勧めします。私はまたあなたが最大の深さで渡すことをお勧めします。これはもっと一般的な方法でしょう。しかし、あなたの例では、別のネストされたforループが必要です。コード:

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

これは、もう1つ下のレベルを検索します。前述のように、Controlsプロパティは一度に1レベルを返します。