web-dev-qa-db-fra.com

Définir Radiobuttonlist sélectionné dans Code Behind

Hé, j'ai une liste de radiobutton et j'essaie de définir l'un des radiobuttons à sélectionner en fonction d'une variable de session mais cela s'avère impossible.

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

I.e Comment puis-je définir l'option2 sur selected in code behind?

16
StevieB

Vous pourriez faire:

radio1.SelectedIndex = 1;

Mais il s’agit de la forme la plus simple et risque fort de devenir problématique à mesure que votre interface utilisateur se développe. Disons, par exemple, si un membre de l'équipe insère un élément de la variable RadioButtonList ci-dessus option2 mais ne sait pas que nous utilisons nombres magiques dans code-behind pour sélectionner - l'application sélectionne maintenant le mauvais index!

Peut-être voudriez-vous envisager d’utiliser FindControl afin de déterminer la ListItem réellement requise, par son nom et en effectuant une sélection appropriée. Par exemple:

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

La meilleure option, à mon avis, consiste à utiliser la propriété Value pour la ListItem, disponible dans la RadioButtonList.

Je dois remarquer que ListItem is NOT possède une propriété ID. 

Donc, dans votre cas, sélectionnez le deuxième élément (option2) qui serait:

// SelectedValue expects a string
radio1.SelectedValue = "1"; 

Sinon, dans le même esprit, vous pouvez fournir un int à SelectedIndex.

// SelectedIndex expects an int, and are identified in the same order as they are added to the List starting with 0.
radio1.SelectedIndex = 1; 
18
marquito

Essayez cette option:

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

Nous pouvons changer le point par valeur, voici le truc:

radio1.ClearSelection();
radio1.Items.FindByValue("1").Selected = true;// 1 is the value of option2
0
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

// si vous sélectionnez un autre radiobutton, augmentez [0] à [1] ou [2] comme ceci

0
sharath s