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

JQGrid With ASP.NET Using ASMX Web Services

4.00/5 (4 votes)
4 Oct 2011CPOL1 min read 31.6K  
Use Of JQGrid In ASP.NET Using ASMX Web Services(Paging,Sorting,Add/Edit/Del Functions)
The grid is a Ajax-enabled JavaScript control that provides a solution for representing tabular data on the web. Since the grid is a client-side solution and loading data dynamically through Ajax callbacks, it can be integrated with any server side technology.

I found that many are trying to use JQgrid with ASP.NET. Even I tried to implement jqgrid with basic functionalities like paging, sorting, editing row, adding row, deleting row by searching in Google.
Finally, I created one working example. So I thought of sharing it thinking that someone might find it useful.

Here I am not explaining from scratch. There are many sources for jqgrid beginners (you can get information about which plugins you need to refer to use jqgrid, basic examples and demos at http://www.trirand.com/blog/jqgrid/jqgrid.html).
I would like to mention some important things which I found.
I have attached my code.
I have a Table in my database called ‘Person’ with the structure as below:
Column Name DataType
PID int Primary Key
FirstName Nvarchar
LastNAme Nvarchar

To run the project, create Person table as above and give your DB connection string.
  1. url: '/WebService.asmx/GetListOfPersons1': This method calls to load data to the grid.
  2. editurl: '/WebService.asmx/EditRow': This method calls while adding new row, updating the row and deleting the row.
  3. Following setting for Add/Edit/Del operations.

    1. To post the data to server as object, you have to set content type to "application/json".
    2. While deleting row, grid posts only grid rowid and oper variables.
      To delete row at server side, we need some column values example primary key of the table. To achieve that, these settings should be done for delete operation.

      onclickSubmit: function (eparams) {
                          var retarr = {};
                          var sr = jQuery("#contactsList").getGridParam('selrow');
                          rowdata = jQuery("#contactsList").getRowData(sr);
                          retarr = { PID: rowdata.PID};
      
      jQuery.extend(jQuery.jgrid.edit, {
                      closeAfterEdit: true,
                      closeAfterAdd: true,
                     
                      ajaxEditOptions: { contentType: "application/json" },
                      serializeEditData: function (postData) {
                          var postdata = { 'data': postData };
                          return JSON.stringify(postdata); ;
                      }
                  });
                  jQuery.extend(jQuery.jgrid.del, {
                      ajaxDelOptions: { contentType: "application/json" },
                    
                      onclickSubmit: function (eparams) {
                          var retarr = {};
                          var sr = jQuery("#contactsList").getGridParam('selrow');
                          rowdata = jQuery("#contactsList").getRowData(sr);
                          retarr = { PID: rowdata.PID};
                          
                          return retarr;
                      },
                      serializeDelData: function (data) {
                          var postData = { 'data': data };
                          return JSON.stringify(postData);
                      }

License

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