web-dev-qa-db-fra.com

Obtenir de la valeur à partir du bouton radio HTML - en aspx-c #

J'ai la source HTML suivante

<form name="Register1" action="Register.aspx" id="registerform" method="post" 
      runat="server" style="margin-top: 15px;">
    <input type="radio" name="Gender" value="male" />male
    <input type="radio" name="Gender" value="female" />female
</form>

Ma question est comment puis-je obtenir la valeur sélectionnée à la variable dans la page c #?

J'ai essayé ceci: 

Gender = Request.Form["Gender"].ToString();

Mais ça n'a pas marché ...

13
Nave Tseva

placez votre code comme ceci:

 if (Request.Form["Gender"] != null)
 {
     string selectedGender = Request.Form["Gender"].ToString();
 }

Notez que Request.Form["Gender"] sera nul si aucun des boutons radio n’est sélectionné.

voir le balisage ci-dessous

<form id="form1" runat="server" method="post">
    <input type="radio" name="Gender" value="male" id="test" checked="checked" />
    male
    <input type="radio" name="Gender" value="female" />female
    <input type="submit" value="test" />
    <asp:Button ID="btn" runat="server" Text="value" />
</form>

pour les deux boutons i.e input type="submit" et asp:button habituel, Request.Form["Gender"] aura une valeur sur PostBack, à condition que l'un des boutons radio soit sélectionné.

Et oui, uniquement sur PostBack, c’est-à-dire lorsque vous appuyez sur l’un des boutons et non lors du premier chargement.

22
Manish Mishra

Pour commencer, vous aurez besoin du formulaire envoyé. La collection de formulaires n'aura rien sur le chargement de la page. Supposons que vous ayez un bouton et que vous cliquez pour soumettre le formulaire, puis dans le gestionnaire d'événements click, vous pouvez obtenir la valeur sélectionnée avec le code Vous avez essayé.

J'imagine que la collection est nulle, d'où l'exception NullReference lorsque vous y accédez.

Il vaut mieux y accéder comme

if(!string.IsNullOrEmpty(Request.Form["Gender"]))
{

}
4
V4Vendetta

Utilisez une RadioButtonList

<asp:RadioButtonList id="RadioButtonList1" runat="server">
    <asp:ListItem value="male">male</asp:ListItem>
    <asp:ListItem value="female">female</asp:ListItem>
</asp:RadioButtonList>

et obtenir la valeur avec

RadioButtonList1.SelectedValue;
2
Linus Caldwell

si vous travaillez avec asp.net, assurez-vous que le nom du contrôle HTML de Request.Form contient ces $ ct100 avec le nom ou l'id avec lequel vous évaluez. Vérifiez l'exemple ci-dessous.

int rbratebyname = 0;

if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null)
{
    rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]);
}
0
Aqib Shehzad