Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Consuming Webservice using JQuery ASP.NET Application

0.00/5 (No votes)
18 Mar 2010 5  
Consuming webservice using JQuery ASP.NET application

Introduction

jQuery is a JavaScript library with rich API to manipulate DOM, event handling, animation and Ajax interactions. The following are the essential features of jQuery that makes it so appealing for client side scripting.

  1. jQuery is Cross-Browser
  2. jQuery supports Ajax
  3. Rich Selectors
  4. DOM Manipulation

etc.

Using the Code

The Web Service methods that I will use revolve around client. Having set up a web site in Visual Studio 2008, I have added a new item of type "Web Service" to the project, calling it Common.asmx. The code-behind - Common.cs - is automatically generated within the App_Code folder.

The full code for that class file is as follows:

ClientDataContext db = new ClientDataContext();
public Common()
{
} 
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Client InsertClient(string BizName)
{
    Client objClient = new Client();
    objClient.BizName = BizName;
    InsertData(objClient);
    return objClient;
}

public void InsertData(Client objClient)
{
    db.Clients.InsertOnSubmit(objClient);
    db.SubmitChanges();
}	

I have used LINQ for database operation Insert client and return Id.

Create a dbml file named Client.

Include JQuery library:

Return result as Json format following attribute will be responsible:

 [ScriptMethod(ResponseFormat = ResponseFormat.Json)]  

and important, do not forget to add attribute for webservice class:

[System.Web.Script.Services.ScriptService]

HTML code is:

<input type="text" id="txtBizName" />
<input type="button" id="Save" value="Save" />

Now JavaScript for achieving Ajax with Jquery library:

  <script language="javascript" type="text/javascript">
        $(document).ready(function() {
            $('#Save').click(InsertClient);
        }
    );
        function InsertClient() {
            var BizName = $('#txtBizName').val();
            alert(BizName);
            $.ajax({
                url: "Common.asmx/InsertClient",
                type: "POST",
                dataType: "json",
                data: "{BizName:'" + BizName + "'}",
                contentType: "application/json; charset=utf-8",
                success: function(msg) {
                    $('#status').html('Id: '+msg['d']['Id']);
                },
                error: function(e) {
                    $('#status').innerHTML = "Unavailable";
                }
            });
        }
    </script> 

Description

Add a reference of JQuery library:

<script src="jquery-1.3.2.min.js" type="text/javascript"></script> 

Then a click event is registered with the button which will invoke the InsertClient () function:

  $(document).ready(function() {
            $('#Save').click(InsertClient);
        }
    ); 

Document.Ready() makes sure code is executed only when a page is fully loaded. We often place code blocks inside this Document.Ready() event.

After that is the InsertClient() function that is fired when the button is clicked. It makes use of the $.ajax(options) function within jQuery, and accepts an object with a number of optional properties. Type specifies the HTTP method, which in this case is POST. URL specifies the URL of the Web Service, together with the web method that is being called. This is followed by the parameters, which are applied to the data property. In this case, BizName parameters are being passed, as we are calling the method that retrieves the entire collection of Client. The contentType and dataType MUST be specified. Following this are two further functions: success defines what should be done if the call is successful and get Id of client with msg['d']['Id'], and error handles exceptions that are returned.

You can see that an object with a property - d - is returned and we display Id of client.

 $('#status').html('Id: '+msg['d']['Id']);  

Summary

With the marching forward of AJAX to the forefront of building rich interactive websites, jQuery as the lightweight yet powerful JavaScript library also gains ever more prominence. Reflecting on the trend of harnessing the best of the web, this article paints in broad strokes some of the characteristics of jQuery and how we can integrate jQuery into ASP.NET.

History

  • 18th March, 2010: Initial post

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here