2011-08-08 11 views
8

Poszukuję najlepszego sposobu obsłużenia zmiany indeksu wybieranego na RadioButtonList ASP.net (kod C# z tyłu). Mam 3 pozycje na liście. Po pierwsze, chcę pokazać ukryty asp: textbox na stronie, a drugi 2 ukryje pole tekstowe.RadioButtonList OnSelectedIndexChanged

//asp.net side 
<asp:RadioButtonList ID="_indicatorAckType" runat="server" RepeatDirection="Horizontal" 
       enabled="true" OnSelectedIndexChanged="onAckTypeChanged"> 
    <asp:ListItem Text="None" /> 
    <asp:ListItem Text="SHOW" /> 
    <asp:ListItem Text="HIDE" /> 
</asp:RadioButtonList> 

//code behind 
protected void onAckTypeChanged(object sender, EventArgs e) 
{ 
    if (_indicatorAckType.SelectedItem.Text == "SHOW") 
     _myTextboxID.Visible = true; 
    else 
     _myTextboxID.Visible = false; 
} 

początkowo próbował użyciu onclick obsługi zdarzeń, ale powiedziano mi, że ListItem nie mogą korzystać z elementów zdarzenia onclick przycisku radiowego. Co ja tu robię źle? Nie powoduje to żadnych błędów ani widocznych problemów. Próbowałem, aby na SelectedIndexChanged zrobić nic oprócz pokazać pole tekstowe i to nie działa.

Każda pomoc jest doceniana! Dziękuję wszystkim.

Odpowiedz

21

W RadioButtonList, ustaw atrybut AutoPostBack na true.

+0

Koleś. Solidny! Świetne pytanie i zwięzła odpowiedź. DZIĘKI. – trgraglia

+0

Dobre dla prostych formularzy, ale formularzy z różnymi innymi kontrolkami, AutoPostBack będzie również odnawiać swoje procedury renderowania, jeśli takie istnieją i powodować inne problemy. To nie zawsze jest tak proste jak AutoPostBack! – Fandango68

+0

thnk u james .u zaoszczędziłem mnóstwo czasu –

1

Spójrz na to może pomóc. I proponuję wyłączyć autopostback, jeśli jest włączona na przycisku radiowym, zrób to wszystko po stronie klienta, używając jquery.

przykład:

Using jQuery, hide a textbox if a radio button is selected

+0

Próbowałem używać jQuery w niektórych javascriptach do pokazywania/ukrywania tego pola, ale javascript nie obsługuje poprawnie kodu. Czy możesz edytować w próbce? – ImGreg

1

Czy trzeba zrobić wszystko, aby odświeżyć ekran? Czy jesteś pewien kolejności, w jakiej te zdarzenia są uruchamiane w związku z jakimkolwiek odrukiem zwrotnym?

Powiązane problemy