RadioButtonList OnSelectedIndexChanged

Я ищу лучший способ справиться с изменением индекса, выбранного в ASP.net RadioButtonList (код С# позади). У меня есть 3 элемента списка. Для первого я хочу, чтобы он отображал скрытое текстовое поле asp: на странице, тогда как другие 2 будут скрывать текстовое поле.

//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;
}

Сначала я пытался использовать обработчики событий onclick, но мне сказали, что ListItem не может использовать события onclick с элементами переключателя. Что я здесь делаю неправильно? Это не вызывает никаких ошибок или каких-либо явно очевидных проблем. Я попытался заставить onSelectedIndexChanged ничего не делать, кроме как показать текстовое поле, и это тоже не работает.

Любая помощь приветствуется! Всем спасибо.


person ImGreg    schedule 08.08.2011    source источник


Ответы (2)


В RadioButtonList установите для атрибута AutoPostBack значение true.

person James Johnson    schedule 08.08.2011
comment
Чувак. Твердый! Отличный вопрос и лаконичный ответ. БЛАГОДАРЯ. - person trgraglia; 26.07.2012
comment
AutoPostBack хорошо подходит для простых форм, но форм с различными другими элементами управления, а также перезапускает их процедуры рендеринга, если таковые имеются, и вызывает другие проблемы. Это не всегда так просто, как AutoPostBack! - person Fandango68; 14.05.2015
comment
Спасибо, Джеймс. Ты сэкономил мне много времени. - person Neelam Prajapati; 09.03.2017

Посмотрите на это, это может помочь. И я предлагаю отключить автопостбэк, если он включен на переключателе, сделать все это на стороне клиента с помощью jquery.

пример:

Используя jQuery, скройте текстовое поле, если переключатель выбран

person Bobby    schedule 08.08.2011
comment
Я пытался использовать jQuery в каком-то javascript, чтобы показать/скрыть поле, но javascript, похоже, не обрабатывает код должным образом. Не могли бы вы отредактировать образец, пожалуйста? - person ImGreg; 09.08.2011