窗口完全显示后,我尝试在 .aspx 页面的代码隐藏中调用函数。我尝试使用:
<script type="text/javascript">
$(document).ready(function () {
PageMethods.CheckForPageChange();
});
</script>
它会抛出以下错误:
0x800a1391 - JavaScript 运行时错误:“$”未定义
我能够让 window.onload
显示警告框,所以我尝试像这样使用它:
<script type="text/javascript">
window.onload = function () {
PageMethods.CheckForPageChange();
}
</script>
但它会抛出错误“PageMethods 未定义”。
我在“form”标签内有这个:
<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true"></asp:ScriptManager>
这在我的代码隐藏中:
[WebMethod]
public void CheckForPageChange()
{
throw new NotImplementedException();
}
有人可以告诉我我在这里缺少什么吗?非常感谢任何帮助!
请您参考如下方法:
0x800a1391 - JavaScript runtime error: '$' is undefined
确保 JQuery 已成功加载。
it throws the error "PageMethods is undefined".
1-您必须将服务器端方法设置为静态方法,如下所示
[WebMethod]
public static void CheckForPageChange()
{
throw new NotImplementedException();
}
2-像这样调用服务器端方法
<script type="text/javascript">
function OnSuccess(response){
//Do Stuff
}
function OnError(error){
//Do Other Stuff
}
$(document).ready(function () {
PageMethods.CheckForPageChange(OnSuccess, OnError);
});
3- 将您的脚本放在 <asp:ScriptManager>
之外,单独放在<script>
中标签