Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Asychronous Web Service Call

5.00/5 (1 vote)
21 Feb 2013CPOL 11.7K  
Asynchronous Web Service Call

Introduction

This tip gives us an idea to call methods of page in an asynchronous way.

Background

To call method asynchronously, AJAX has to provide build ins example $.ajax( ).

Using the Code

Step 1

Create a simple AsychCall web page (.aspx). Create a web method, which we need to consume asynchronously like:

C#
[WebMethod]
[ScriptMethod()]
public static bool ExecuteReport(string reportingYear )
{
   
    bool returnvalue = true;
    int reportReturnValue = -1;
    try
    {
        reportReturnValue = GenerateReport.ReportGeneratereportingYear 
        if (reportReturnValue == -1)
        {
            return false;
        }
        return returnvalue;
    }
    catch (System.Exception ex)
    {
        return returnvalue;
    }
}

Step 2

Create another webpage and place a button like:

ASP.NET
<td>
     <asp:Panel ID="pnlReportStatusMsg" 
                runat="server" Visible="true">
         <input type="button" id="btnReportGenerate" 
                    value="Generate Report" onclick="executeReport();"
                        runat="server" />
     </asp:Panel>
</td>

Step 3

On the button click, call a JavaScript method "executeReport(); like:

JavaScript
$.ajax({
       type: "POST",
       url: "/AsychCall.aspx/ExecuteReport",
       data: "{reportingYearKey:'" + FiscalYearValue }",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: function (msg) {
           if (msg.d == false) {
               document.getElementById('<%= lblReportStatus.ClientID %>').
               style.display = 'block';
               $("#<%=lblReportStatus.ClientID %>").text
               ("Report generation process is not enabled for selected
               reporting fiscal year, therefore please contact administrator
               for the corresponding changes.");
               document.getElementById('<%= btnReportGenerate.ClientID %>').
               disabled = false;
           }
       },
       error: function (request, status, error) {
           alert(request.responseText);
       }
   });

Step 4

Compile this code. You see, when you click the button "Generate Report", AJAX method asynchronously calls Web method "ExecuteReport" from AsychCall Web page.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)