Asychronous Web Service Call





5.00/5 (1 vote)
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:
[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:
<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:
$.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.