窗口完全显示后,我尝试在 .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>中标签


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!