嗨,我有一个 aspx 页面,其中有以下代码
<asp:ScriptManager ID="scriptManager" runat="server" AsyncPostBackTimeout="500" EnablePageMethods="true">
</asp:ScriptManager>
<script type="text/javascript">
Sys.Application.add_init(BeginRequestHandler);
Sys.Application.add_init(EndRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
AsynProcessing('block', 'AlertDiv', 'ProcessingImage');
}
function EndRequestHandler(sender, args) {
AsynProcessing('none', 'AlertDiv', '');
}
function AsynProcessing(visstring, elem, img) {
var adiv = $get(elem);
adiv.style.display = visstring;
adiv.image = img;
}
但是页面抛出了一个 javascrip 错误,因为“Sys.WebForms.PageRequestManager”为空或不是对象。我已经把下面的脚本管理器标签。我什至尝试添加
<xhtmlConformance mode="Transitional"/>
在 web.config 的部分中。但仍然出现相同的错误。
任何帮助深表感谢。提前致谢
最佳答案
在调用 Sys.WebForms.PageRequestManager
之前,使用此代码包装您的处理程序,以等待所有必要的脚本已加载
Sys.Application.add_init(function(){ ... your code ....}
http://msdn.microsoft.com/en-us/library/bb397532.aspx
编辑:这一行
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler)
的错误原因是脚本尚未加载,因此如果您想要处理异步回发,您必须编写如下内容:Sys.Application.add_init(function(){
Sys.WebForms
.PageRequestManager
.getInstance()
.add_beginRequest(BeginRequestHandler)
});
简单的英语是什么意思?等待所有脚本加载完毕(包括
Sys.WebForms
命名空间)并订阅事件 beginRequest
你的脚本块应该是这样的:<script type="text/javascript">
Sys.Application.add_init(function () {
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
});
Sys.Application.add_init(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
});
function BeginRequestHandler(sender, args) {
AsynProcessing('block', 'AlertDiv', 'ProcessingImage');
}
function EndRequestHandler(sender, args) {
AsynProcessing('none', 'AlertDiv', '');
}
function AsynProcessing(visstring, elem, img) {
var adiv = $get(elem);
adiv.style.display = visstring;
adiv.image = img;
}
</script>
关于asp.net - 'Sys.WebForms.PageRequestManager' 为空或不是对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7062286/