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?
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;
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;
Essayez cette option:
radio1.Items.FindByValue("1").Selected = true;
Nous pouvons changer le point par valeur, voici le truc:
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
// si vous sélectionnez un autre radiobutton, augmentez [0] à [1] ou [2] comme ceci