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.
- url: '/WebService.asmx/GetListOfPersons1': This method calls to load data to the grid.
- editurl: '/WebService.asmx/EditRow': This method calls while adding new row, updating the row and deleting the row.
- Following setting for Add/Edit/Del operations.
- To post the data to server as object, you have to set content type to "
application/json
".
- 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);
}