这就是我要做的 -
在文档准备就绪时使用jQuery,如果页面没有回发,我会发布一个手动回发更新面板,以便从数据库中检索数据。
当updatepanel获取数据时,我提供了一个updateprogress,当特定的updatepanel完成时我会隐藏它。我也希望从任何互动中“阻止”屏幕。加载数据后,我在表单上有其他按钮,我想在部分回发的情况下阻止所有内容。
以下是代码:
$(document).ready(function ()
{
if(<% =(Not Page.isPostBack).ToString().ToLower() %>)
{
__doPostBack('upShipping');
}
}
function pageLoad() {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
}
function BeginRequestHandler(sender, args)
{
$('.blur').css("display", "block");
if (args._postBackElement.id == 'upShipping') {
$get('divCalculating').className = 'Show';
}
}
function EndRequestHandler(sender, args)
{
$('.blur').css("display", "none");
if (sender._postBackSettings.sourceElement.id == 'upShipping')
{
$get('divCalculating').className = 'Hidden';
}
}
如果我不在屏幕上“点击”,一切都很棒。但是,如果我只是点击屏幕上的任何地方,而更新面板更新“EndRequestHandler”不会触发,我仍然坚持加载gif和阻止屏幕。 我在浏览器的错误控制台中收到以下错误:sender._postBackSettings.sourceElement未定义
有什么想法吗?
谢谢!
尼克
答案 0 :(得分:0)
由于某种原因,sender._postBackSettings.sourceElement
EndRequestHandler
中BeginRequestHandler
仍然返回NULL。
我定义了一个全局变量,在EndRequestHandler
为其分配了值,并在{{1}}中检查了它的值。
这解决了这个问题。