Внутри ASP.NET AJAX UpdatePanel на моей странице у меня есть кнопка отправки, к которой применена некоторая пользовательская проверка JavaScript, которая устанавливает глобальный флаг _cancelGeneralSettingsUpdate
в зависимости от результатов проверки.
Все работает, если толькоВы вводите неверное значение, исправляете его и повторно отправляете.В этом случае переменная _cancelGeneralSettingsUpdate
правильно установлена на false
, но функция initializeRequest
не вызывается до того, как страница пытается выполнить обратную передачу через AJAX, что приводит к сбою обратной передачи.
Мне нужно, чтобы постбэки были успешными после того, как неверный ввод был исправлен, и пользователь снова нажимает кнопку отправки.К сожалению, после отмены обратной передачи я, похоже, неправильно подключен к конвейеру PageRequestManager
.Если я обновляю страницу, все снова работает, но отмена обратной передачи через args.set_cancel(true);
переводит меня в состояние, в котором я не могу делать дополнительные обратные передачи через AJAX до тех пор, пока страница не будет обновлена.
Как я могу повторно включитьпостбэки или вызовет initializeRequest и установил его перед последующими постбэками?
Я прикрепил часть своего кода.Предположим, что _cancelGeneralSettingsUpdate
установлен правильно перед любой попыткой обратной передачи, как я это проверил.
var _cancelGeneralSettingsUpdate = false;
function initializeRequest(sender, args) {
var pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
if (!pageRequestManager.get_isInAsyncPostBack() & args.get_postBackElement().id == '<%= UpdateWorkgroupGeneralButton.ClientID %>')
{
if (_cancelGeneralSettingsUpdate) {
args.set_cancel(true);
// Show error message
}
else {
args.set_cancel(false);
}
}
else {
args.set_cancel(false);
}
}