これが私がそれを行う方法です:
最初に、Html コントロールをパネルまたは同様のグループ化オブジェクト内にラップします (パネルは div としてレンダリングされます)。
<asp:Panel runat="server" ID="ButtonList" ClientIDMode="Static">
<input type="radio" name="seasons" value="Spring" runat="server" />Spring <br/>
<input type="radio" name="seasons" value="Summer" runat="server" /> Summer <br/>
<input type="radio" name="seasons" value="Fall" runat="server" /> Fall <br/>
<input type="radio" name="seasons" value="Winter" runat="server" /> Winter <br/>
</asp:Panel>
次に、拡張メソッドを作成して、パネルの ControlCollection プロパティにアクセスし、コレクションを反復処理します。
public static class HelperFunctions
{
public static string GetRadioButtonValue(this ControlCollection collection)
{
foreach (var control in collection)
{
if (control is HtmlInputRadioButton)
{
var radioControl = ((HtmlInputRadioButton)control);
if (radioControl.Checked)
{
return radioControl.Value;
}
}
}
//If no item has been clicked or no Input Radio controls are present we return an empty string
return String.Empty;
}
}
最後に、値を簡単に取得できます。
var selectedValue = ButtonList.Controls.GetRadioButtonValue();