Saturday, May 12, 2007

How to: Calling Web Services methods from Client Script in ASP.NET AJAX

My previos post explained the way to expose a web service to client script in Ajax. This post will introduce the "How to" call the web service's method from the client script.

Our web service is:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  namespace MySamples.BL
{
[WebService(Namespace = " http://tempuri.org/")]
[ScriptService]
public class MyWebService : System.Web.Services.WebService
{
[WebMethod]
public string PrintString(String input)
{
return input;
}
[WebMethod]
public string SayHello()
{
return "Hello";
}
}
}

Calling a Web service method from script is asynchronous. Succeeded callback function must provided to get a return value or to determine when the request has returned. This function is invoked when the request has finished successfully with return value (as a parameter) from the Web method call. Failed callback function can also provided to handle errors.

Based on the previous post, this is what you should do in the client script.

The script is:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  // This function calls the Web service method 
// without parameters and
// passes the event callback function.
function SayHello()
{
MySamples.BL.MyWebService.SayHello(SucceededCallback);
}

// This function calls the Web service method
// passing simple type parameters and the
// callback function 
function PrintString(str)
{
    MySamples.BL.MyWebService.PrintString(str,SucceededCallback);
}


// This is the callback function invoked if the Web service succeeded.
function SucceededCallback(result, eventArgs)
{
    var wsResult= document.getElementById( "wsResult");
    wsResult.innerHTML = result;
}

Thats all!

No comments: