我在ASP.NET 2.0页面中有以下内容。
<script type="text/javascript">
function pageLoad()
{
var manager = Sys.WebForms.PageRequestManager.getInstance();
if (manager !=null)
{
debugger;
manager.add_beginRequest(Request_Begin);
manager.add_endRequest(Request_End);
}
}
function Request_Begin(sender, args)
{
debugger;
....
}
function Request_End(sender, args)
{
....
}
</script>
调用pageLoad但是Request_Begin中的代码似乎永远不会被命中。 任何线索为什么?
答案 0 :(得分:1)
当您使用Microsoft脚本(例如,来自UpdatePanel)触发AJAX请求时,将触发回调:
<%@ Page Language="C#" %>
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
function pageLoad() {
var manager = Sys.WebForms.PageRequestManager.getInstance();
if (manager != null) {
manager.add_beginRequest(Request_Begin);
manager.add_endRequest(Request_End);
}
}
function Request_Begin(sender, args)
{
debugger;
}
function Request_End(sender, args) {
debugger;
}
</script>
</head>
<body>
<form id="Form1" runat="server">
<asp:ScriptManager ID="scm" runat="server" />
<asp:UpdatePanel ID="up" runat="server">
<ContentTemplate>
<%= DateTime.Now.ToLongTimeString() %>
<asp:LinkButton ID="link" runat="server" Text="update" />
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
如果你使用jQuery来做你的AJAX,那就忘掉那些被解雇的东西。
答案 1 :(得分:0)
我认为将它附加在Page_Load中为时已晚。尝试将其附加到PreInit中。