asp.net Dropdownlist условный постбэк - PullRequest
2 голосов
/ 02 января 2012

У меня есть выпадающий список и выбрано событие InIndexChanged, которое отправляет сообщение, я хочу иметь возможность показывать пользователю сообщение всякий раз, когда он изменяет значение в раскрывающемся списке, на основе ввода из сообщения, которое я решу, нужно ли отправлять обратноили нет.

Показанное сообщение будет, вы уверены?если он выберет «да», я продолжу обратную передачу, если он скажет «нет», я бы отменил обратную передачу и назначил предыдущее значение как выбранное.

Я много раз искал, но не могу найти решение этой проблемы, думаю, еслиесть функция javascipt, которая определяет, требуется ли обратная передача или нет, которая может помочь мне догадаться

Спасибо

Ответы [ 3 ]

1 голос
/ 02 января 2012

Вы можете отменить постбэк выпадающего списка очень просто. Просто добавьте этот javascript на событие загрузки страницы.

protected void Page_Load(object sender, EventArgs e)
{
    DropDownList1.Attributes.Add("OnChange", "if (!confirm('Change this?')){return};");
}
1 голос
/ 02 января 2012
// get a reference to the DropDownList
var selectlistId = '<%= ddlYourList.ClientID %>',
    selectlist = document.getElementById(selectlistId);

// attach to the onchange event
selectlist.onchange = function() {

  // decide whether to execute the __doPostBack event, which submits the
  // form back to the server
  if(confirm("Are you sure you want to do this?")){
     __doPostBack(selectlistId, '');
  }
};
0 голосов
/ 02 января 2012

Для выполнения этой задачи вам нужно будет использовать CustomValidator с пользовательским Javascript на стороне клиента для управления обратной почтой.

Вы можете прочитать эту статью на 4Guys , обсуждая различные валидаторыс примером JavaScript валидатора на стороне клиента, чтобы получить представление.

Но основное решение будет использовать пользовательский валидатор для контроля обратной отправки только тогда, когда форма действительна.

...