Search code examples
javascriptasp.netasp.net-ajaxcomputer-sciencepagemethods

ASP.net PageMethods return undefined


Hi everyone i trying to get data from cs to js using ToolkitScriptManager. this is my aspx :

    <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="../assets/lib/jquery/jquery-2.0.3.js" type="text/javascript"></script>

    <script>
        $(window).load(function () {
            alert(PageMethods.isConnected());
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ToolkitScriptManager runat="Server"
            EnablePageMethods="true"
            EnablePartialRendering="true" />
    <div>

    </div>
    </form>
</body>
</html>

and this is my code behind

[ScriptMethod, WebMethod]
        public static bool isConnected()
        {
            return true;
        }

i dont know, but this keep result undefined, sorry if this is really simple problem for you, but for me so hard, because i am new in asp.net please help me to fix this problem.


Solution

  • You need to supply a success and a failure callback to the webmethod call as below.

      $(window).load(function () {
                                        PageMethods.isConnected(fnsuccesscallback,fnerrorcallback);
    
            });
            function fnsuccesscallback(data) {
                alert(data);
    
            }
            function fnerrorcallback(result) {
                alert(result.statusText);
            }
    

    Also, there is another way of accessing the page methods using $.ajax.

    <head id="Head1" runat="server">
        <title></title>
        <script src="../assets/lib/jquery/jquery-2.0.3.js" type="text/javascript"></script>
        <script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script>
        <script type="text/javascript" language="javascript">
    
             $(window).load(function () {
    
          $.ajax({
                type: "POST",
                url: "PageMethodTest.aspx/isConnected",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: fnsuccesscallback,
                error:fnerrorcallback
            });
        });            function fnsuccesscallback(data) {
                alert(data.d);
    
            }
            function fnerrorcallback(result) {
                alert(result.statusText);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager EnablePageMethods="true" runat="server">
        </asp:ScriptManager>
        <div>
        </div>
        </form>
    </body>