web-dev-qa-db-ja.com

Codebehindから選択されたRadiobuttonlistを設定します

ちょっと私はラジオボタンリストを持っており、セッション変数に基づいて選択されたラジオボタンのいずれかを設定しようとしていますが、不可能です。

<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に設定するにはどうすればよいですか?

17
StevieB

できること:

radio1.SelectedIndex = 1;

しかし、これは最も単純な形式であり、UIが大きくなるにつれて問題が発生する可能性が高くなります。たとえば、チームメンバーRadioButtonList上のアイテムを挿入するoption2しかし、選択するコードビハインドでマジックナンバーを使用することを知らない-これでアプリは間違ったインデックスを選択します!

おそらく、名前で実際に必要なListItemを決定し、適切に選択するために、 FindControl の使用を検討する必要があります。例えば:

//omitting possible null reference checks...
var wantedOption = radio1.FindControl("option2").Selected = true;
15
Grant Thomas

私の意見では、最良のオプションは、Valueで使用可能なListItemRadioButtonListプロパティを使用することです。

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; 
20
marquito

このオプションを試してください:

radio1.Items.FindByValue("1").Selected = true;
14
shazia

値によってアイテムを変更できます。ここにトリックがあります:

radio1.ClearSelection();
radio1.Items.FindByValue("1").Selected = true;// 1 is the value of option2
2
Elham Kohestani
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]に増やします

0
sharath s