Use of JQGrid in ASP.NET using ASMX Web Services


Here I will use a 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 I'd share it, thinking that it may be useful to someone.

Here I am not explaining from the scratch. There are many sources for JQgrid starters (You can get information about which plugins you need to refer to use  JQgrid, basic examples and demos here 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 the 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.

    • To post the data to server as object ,have to set content type to "application/json" .
    • While deleting row ,grid posts only grid rowid and oper variables.

To a delete row at server side we need some column values, for example the primary key of the table. To achieve that this setting should be set for the 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);
                }