Comment trouver vérifié RadioButton à l'intérieur de Répétition de l'Élément?
J'ai un contrôle Repeater sur ASPX-page définie comme ceci:
<asp:Repeater ID="answerVariantRepeater" runat="server"
onitemdatabound="answerVariantRepeater_ItemDataBound">
<ItemTemplate>
<asp:RadioButton ID="answerVariantRadioButton" runat="server"
GroupName="answerVariants"
Text='<%# DataBinder.Eval(Container.DataItem, "Text")%>'"/>
</ItemTemplate>
</asp:Repeater>
Pour permettre de sélectionner un seul bouton radio dans le temps, j'ai utilisé un truc de la forme cet article.
Mais maintenant, lorsque le formulaire est soumis, je veux déterminer bouton-radio est coché.
Je pourrais faire ceci:
RadioButton checkedButton = null;
foreach (RepeaterItem item in answerVariantRepeater.Items)
{
RadioButton control=(RadioButton)item.FindControl("answerVariantRadioButton");
if (control.Checked)
{
checkedButton = control;
break;
}
}
mais espérons que cela pourrait être fait en quelque sorte plus simple (peut-être via LINQ to objects).
OriginalL'auteur Alexander Prokofyev | 2008-11-14
Vous devez vous connecter pour publier un commentaire.
Puisque Vous êtes à l'aide de javascript déjà à gérer le bouton radio et cliquez sur l'événement sur le client, vous pouvez mettre à jour un champ caché avec la valeur sélectionnée dans le même temps.
Votre serveur de code serait simplement accéder à la valeur sélectionnée pour le champ caché.
OriginalL'auteur HectorMac
Vous pouvez toujours utiliser
Demande.Formulaire
pour obtenir le soumis bouton radio:Je pense que le soumis valeur par défaut de l'id de la
<asp:RadioButton />
qui a été sélectionné, mais vous pouvez toujours ajouter un attribut de valeur - même si elle n'est pas officiellement un<asp:RadioButton />
propriété - et ce sera alors la valeur soumise:OriginalL'auteur Ian Oxley
Je suis assez sûr que la seule chose que vous pourriez utiliser LINQ to Objects pour ici serait de prendre les conditions de l'intérieur de la boucle foreach et de les déplacer dans une clause where.
Je n'ai jamais vu une autre méthode pour obtenir une instance d'un contrôle basé sur un modèle de contrôle parent. La chose la plus simple serait d'utiliser un RadioButtonList, mais je suppose que votre exemple est simplifié pour plus de clarté et il y avait d'autres contrôles dans le modèle qui vous ont empêché de les utiliser.
OriginalL'auteur Kevin Gorski