2016-10-05 2 views
0

У меня есть элемент управления RadioButtonList в asp.net UserControl. Он имеет 2 радиокнопки «Оставить» и «Доступно». При нажатии кнопки «Оставить» я вывешиваю предупреждение из события SelectedIndexChanged как «Вы уверены, что хотите уйти?» с кнопками «ОК» и «Отмена». При нажатии кнопки «Отмена» он автоматически выбирает «Доступно». До этого все нормально.RadioButtonList SelectedIndexChanged не срабатывает каждый раз

Шаг 1: пользователь щелкает Отменить восстановлений к «Доступен»

Шаг 2: Когда пользователь снова нажимает кнопку «Оставить», он не будет отображаться предупреждение от SelectedIndexChanged из RadioButton.

Шаг 3: Теперь он снова будет работать.

Для этого я включил EnableViewState = "true" для этого UserControl. Но все же это не работает во второй раз.

Ниже на стороне сервера SelectedIndexChanged событие

protected void rdlUser_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (rdlUser.SelectedIndex == 1) 
    { 
     txtUser.Enabled = true; 
    } 
    else 
    { 
     radWindowManager.RadConfirm("Are you sure you want to take Leave?", "confirmSave" + this.ClientID, 300, 100, null, ""); 
    } 
} 

Это Java-код

function confirmSave<%=this.ClientID%>(arg) { 
    if (arg == true) { 

     $find('<%= FindControl("txtUser").ClientID %>').set_value(""); 

    } 
    else { 
     var rdlUser = document.getElementById("<%= rdlUser.ClientID %>"); 
     var radioButtons = rdlUser.getElementsByTagName('input'); 
     radioButtons[3].checked = true; 
    } 
} 
+0

Для шага 2, если вы по умолчанию выбрали значение «Оставить», то событие SelectedIndexChanged не будет запущено, когда вы снова нажмете эту опцию , Событие запускается только тогда, когда выбранный параметр отличается от предыдущего. Есть ли какая-то особая причина, по которой вы не используете подход на стороне клиента? – woodykiddy

+0

Здесь я использую telerik RadConfirm. Есть ли решение для этого? –

ответ

1

Используйте следующий код и дайте мне знать результат

function confirmSave<%=this.ClientID%>(arg) { 
    if (arg == true) { 
     $find('<%= FindControl("txtUser").ClientID %>').set_value(""); 
     return true; 
    } 
    else { 
     var rdlUser = document.getElementById("<%= rdlUser.ClientID %>"); 
     var radioButtons = rdlUser.getElementsByTagName('input'); 
     radioButtons[3].checked = true; 
     return false; 
    } 
} 
+0

radWindowManager.RadConfirm («Вы уверены, что хотите уйти?», «Return confirmSave» + this.ClientID + «;», 300, 100, null, «»); } – Kiran

+0

Это не работает для меня @ Киран. Теперь я не получаю сообщение с подтверждением. –

+0

Вы можете использовать '' если это можно сделать только на стороне клиента –

Смежные вопросы