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.
- 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 ,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);
}