在我的页面上,一个ASP.NET AJAX UpdatePanel里有一个提交按钮,它使用一些自定义的JavaScript验证并设置一个全局的
我需要在用户纠正并重新提交无效输入后,能够使postbacks成功。不幸的是,一旦取消postback后,似乎无法正确连接到
如何重新启用postbacks或使initializeRequest在随后的postback之前触发并设置这个呢?
我附上了一些代码。假设
_cancelGeneralSettingsUpdate
标记,具体取决于验证结果。除非输入无效值,否则一切正常。在这种情况下,变量_cancelGeneralSettingsUpdate
被正确地设置为false
,但在页面尝试通过AJAX进行postback之前,initializeRequest
函数不会被调用,导致postback失败。我需要在用户纠正并重新提交无效输入后,能够使postbacks成功。不幸的是,一旦取消postback后,似乎无法正确连接到
PageRequestManager
管道。如果刷新页面,一切又都正常了,但是通过args.set_cancel(true);
取消postback会使我陷入一种状态,在该状态下无法通过AJAX进行进一步的postback,直到刷新页面。如何重新启用postbacks或使initializeRequest在随后的postback之前触发并设置这个呢?
我附上了一些代码。假设
_cancelGeneralSettingsUpdate
在任何尝试postback之前已经正确设置了,因为我已经验证过这一点。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);
}
}