ちょっと私はラジオボタンリストを持っており、セッション変数に基づいて選択されたラジオボタンのいずれかを設定しようとしていますが、不可能です。
<asp:radiobuttonlist id="radio1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
<asp:listitem id="option1" runat="server" value="All"/>
<asp:listitem id="option2" runat="server" value="1" />
<asp:listitem id="option3" runat="server" value="2" />
</asp:radiobuttonlist>
つまり、コードビハインドでoption2をselectedに設定するにはどうすればよいですか?
できること:
radio1.SelectedIndex = 1;
しかし、これは最も単純な形式であり、UIが大きくなるにつれて問題が発生する可能性が高くなります。たとえば、チームメンバーがRadioButtonList
上のアイテムを挿入するoption2
しかし、選択するコードビハインドでマジックナンバーを使用することを知らない-これでアプリは間違ったインデックスを選択します!
おそらく、名前で実際に必要なListItem
を決定し、適切に選択するために、 FindControl の使用を検討する必要があります。例えば:
//omitting possible null reference checks...
var wantedOption = radio1.FindControl("option2").Selected = true;
私の意見では、最良のオプションは、Value
で使用可能なListItem
にRadioButtonList
プロパティを使用することです。
ListItem
は[〜#〜] not [〜#〜]にはIDがありますプロパティ。
したがって、あなたの場合、2番目の要素(option2)を選択するには:
// SelectedValue expects a string
radio1.SelectedValue = "1";
または、非常に同じ方法で、SelectedIndexにintを指定できます。
// SelectedIndex expects an int, and are identified in the same order as they are added to the List starting with 0.
radio1.SelectedIndex = 1;
このオプションを試してください:
radio1.Items.FindByValue("1").Selected = true;
値によってアイテムを変更できます。ここにトリックがあります:
radio1.ClearSelection();
radio1.Items.FindByValue("1").Selected = true;// 1 is the value of option2
var rad_id = document.getElementById('<%=radio_btn_lst.ClientID %>');
var radio = rad_id.getElementsByTagName("input");
radio[0].checked = true;
//this for javascript in asp.net try this in .aspx page
//他のラジオボタンを選択した場合、[0]を[1]または[2]に増やします