サーバーからデータをロードするjqgridを作成しました。グリッドでデータを表示できますが、拡張して起動しようとするとonclickSubmit
、$.jgrid.del
実際のレコードIDを取得できません(これは私の場合、それは 101 、 102 です) 1 、 2 を返す代わりに、行インデックス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 レスポンス
{
"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": "",
}
]
}
jsonリーダーでIDをうまく指定すると、レコードを削除する際の問題が解決しましたが、レコードを編集すると、postdata引数に次のものが含まれます
e_info_id: "101"
e_meta_description: ""
e_meta_title: "Oracle Business Summit"
id: "101"
oper: "edit"
postdata.id または postdata.e_info_id としてアクセスしようとすると、 undefined が返されます。編集の onclickSubmit は次のとおりです。
onclickSubmit: function (options, postdata) {
console.log(postdata);
console.log(postdata.id); //undefined
options.url = options.editurl +'/' + encodeURIComponent(postdata.id);
}