2013-03-29 10 views
11

mam następujące źródła HTMLUzyskiwanie wartości z przyciskiem radiowym html - w 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> 

Moje pytanie brzmi: w jaki sposób mogę uzyskać wybraną wartość do zmiennej w C# stronie?

Próbowałem to:

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

Ale to nie działa ...

+0

Nie działa? Czy możesz rozwinąć to ... – V4Vendetta

+0

Tak, kiedy dotarłem do tego wiersza, otrzymałem ten komunikat o błędzie: System.NullReferenceException –

+0

Cóż, gdzie piszesz ten fragment kodu i nie masz przycisku do przesłania tego? – V4Vendetta

Odpowiedz

18

pla ce swój kod tak:

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

Zauważ, że Request.Form["Gender"] będzie null, jeśli żaden z RadioButton są zaznaczone.

zobaczyć znaczników poniżej

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

zarówno przyciski tj input type="submit" i zwykły asp:button, Request.Form["Gender"] ma mieć jakąś wartość po PostBack, pod warunkiem, jeden z RadioButton jest zaznaczona.

I tak, tylko na PostBack, tj. Po naciśnięciu któregokolwiek z przycisków, a nie przy pierwszym obciążeniu.

+0

Dziękuję bardzo! Działa świetnie! –

+0

Cieszę się, że mogę Ci pomóc :) –

+0

Czy to musi używać 'Request.Form'? Nie mogę po prostu wywołać formantu przez jego "identyfikator" od strony serwera (kod C# za)? – aspiring

1

użyć RadioButtonList

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

i uzyskać wartość z

RadioButtonList1.SelectedValue; 
+0

Dziękuję, ale muszę zrobić listę w html, jest opcja, aby uzyskać wartość, gdy jest w HTML? –

+0

@Naw, dlaczego? Używasz formularza ASP.net z 'runat =" serwerem "'. Dlaczego więc nie używać "RadioButtonList"? –

+0

Witam, właśnie uczę się tego przedmiotu, a nauczyciel powiedział nam, abyśmy spróbowali uzyskać wartość z przycisku radiowego html ... Czy to możliwe? –

4

Na początek będziesz potrzebował formularza opublikowanego Kolekcja formularzy nie będzie miała nic na ładowaniu strony, więc załóżmy, że masz przycisk i klikniesz, aby przesłać formularz, a następnie w module obsługi zdarzeń kliknij, aby uzyskać wybrany wartość z wypróbowanym kodem.

Domyślam się, że kolekcja jest pusta, stąd wyjątek NullReference, gdy uzyskujesz do niej dostęp.

Lepiej jest do niego dostęp jak

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

} 
0

jeśli pracujesz z ASP.NET upewnić się, że nazwa HTML kontrola przez Request.Form zawiera te CT100 $ z nazwą lub id, przez które są oceniające . sprawdź poniższy przykład.

int rbratebyname = 0; 

if (Request.Form["ctl00$ContentPlaceHolder1$rate"] != null) 
{ 
    rbratebyname = int.Parse(Request.Form["ctl00$ContentPlaceHolder1$rate"]); 
} 
Powiązane problemy