I have create the the jqgrid which loads the data from the server , i am able to view the data in a grid , but when i try to extend and fire up onclickSubmit of $.jgrid.del i am not be able to get the actual record id (which is in my case it is 101 , 102 ) instead of that it returns 1 , 2 , may be a row index id.
JqGrid
jQuery("#eventGrid").jqGrid({
url:"/eventAllInfo",
datatype: "json",
restful: true,
mtype: 'GET',
width:900,
colNames:['id','title', 'description'],
colModel:[
{name:'e_info_id',index:'e_info_id', width:60, sorttype:"int",editable:true,editoptions:{size:10}},
{name:'e_meta_title',index:'e_meta_title', width:90,editable:true,editoptions:{size:10}},
{name:'e_meta_description',index:'e_meta_description', width:100,editable:true,editoptions:{size:10}},
],
rowNum:10, rowList:[10,20,30],
jsonReader : { repeatitems: false },
pager: '#pager',
caption: "Show Events"
});
JSON Response
{
"success": true,
"message": "Records Retrieved Successfully -EventAllInfo",
"page": "1",
"total": 1,
"records": "2",
"rows": [
{
"e_info_id": "101",
"e_meta_title": "Oracle Business Summit",
"e_meta_description": null,
"e_meta_img": null,
"e_meta_video": null,
},
{
"e_info_id": "102",
"e_meta_title": "Expo 2014 - Environment",
"e_meta_description": "",
"e_meta_img": "",
"e_meta_video": "",
}
]
}
Well specifying id in json reader solved my problem in deleting record , but when i edit the record my postdata argument contains
e_info_id: "101"
e_meta_description: ""
e_meta_title: "Oracle Business Summit"
id: "101"
oper: "edit"
and when i try to access it as postdata.id or postdata.e_info_id it returns undefined , here is the onclickSubmit of edit
onclickSubmit: function (options, postdata) {
console.log(postdata);
console.log(postdata.id); //undefined
options.url = options.editurl +'/' + encodeURIComponent(postdata.id);
}
If you use
jsonReader: { repeatitems: false }jqGrid don’t know which values it should use as so named rowid. The rowid is the value ofidattribute of<tr>elements in the grid.To fix the problem you have two options:
key: trueproperty in thee_info_idcolumn.id: "e_info_id"injsonReader(see the answer of Christian)The default value of
idproperty in thejsonReaderisid: "id".It’s important to know that the
idvalue have to be unique on the page. If you for example have two grids on the page and both have information with integer ids you can have conflicts. In the case you can useidPrefixoption. In the case the value ofidattribute of<tr>elements will be constructed from theidPrefix(which should be different in both pages of cause) and the “standard”id.