在我的頁面上的ASP.NET AJAX UpdatePanel中,我有一個提交按鈕,它具有一些自定義的JavaScript驗證應用,它設置了一個全局的_cancelGeneralSettingsUpdate
標誌關於驗證的結果。ASP.NET AJAX UpdatePanel - 在InitializeRequest中取消回發不會重新啓用
除非您輸入無效值,更正它並重新提交,否則一切正常。在這種情況下,變量_cancelGeneralSettingsUpdate
正確設置爲false
,但在頁面嘗試通過AJAX回發之前不調用initializeRequest
函數,導致回發失敗。
一旦無效輸入得到糾正並且用戶再次單擊提交按鈕,我需要能夠回發成功。不幸的是,一旦回發被取消,我似乎沒有正確連接到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);
}
}
與此問題非常相似。 http://ajaxcontroltoolkit.codeplex.com/workitem/25755 – 2010-10-13 17:44:58