2013-03-29 21 views
11

Ho il seguente codice HTMLOttenere valore dal pulsante di scelta HTML - in aspx-C#

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

mia domanda è come posso ottenere il valore selezionato alla variabile nel # pagina C?

ho provato questo:

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

Ma non ha funzionato ...

+0

Non ha funzionato? Puoi approfondire ... – V4Vendetta

+0

Sì, quando è arrivata questa riga ho ricevuto questo messaggio di errore: System.NullReferenceException –

+0

Bene, dove stai scrivendo questo pezzo di codice e non hai nessun pulsante per inviarlo? – V4Vendetta

risposta

18

pla Ce vostro codice come questo:

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

noti che Request.Form["Gender"] sarà nullo se nessuno dei RadioButtons sono selezionati.

vedere il codice sotto

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

per entrambi i pulsanti cioè input type="submit" ed usuale asp:button, Request.Form["Gender"] sta per avere un certo valore alla PostBack, disponibile, uno dei RadioButtons è selezionata.

E sì, solo su PostBack, ad esempio quando si preme uno dei pulsanti e non sul primo carico.

+0

Grazie mille! Funziona alla grande! –

+0

felice di aiutarti :) –

+0

È necessario utilizzare 'Request.Form'? Non posso semplicemente chiamare il controllo con il suo 'id' dal lato server (codice C# dietro)? – aspiring

1

Utilizzare un RadioButtonList

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

e ottenere il valore con

RadioButtonList1.SelectedValue; 
+0

Grazie, ma devo fare la lista in html, c'è un'opzione per ottenere valore quando è in HTML? –

+0

@Nave, perché? Si utilizza un modulo ASP.net con 'runat =" server "'. Allora perché non usare un 'RadioButtonList'? –

+0

Ciao, sto solo imparando questo argomento, e l'insegnante ci ha detto di provare a ottenere valore dal pulsante radio html ... È anche possibile? –

4

Per iniziare è necessario il modulo inviato la raccolta Form non avrà nulla sul caricamento della pagina, quindi supponiamo di avere un pulsante e si fa clic per inviare il modulo quindi nel gestore di eventi click è possibile ottenere il selezionato valore con il codice che hai provato.

Suppongo che la raccolta sia nullo quindi l'eccezione NullReference quando ci si accede.

E 'meglio per accedervi come

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

} 
0

se si sta lavorando con asp.net assicurarsi che HTML nome del controllo da Request.Form contiene questi CT100 $ con il nome o l'ID attraverso il quale si sta valutando . controllare l'esempio di seguito.

int rbratebyname = 0; 

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