实际上,我已经在jQGrid上实现了一个REST解决方案,用于从NavGrid中POST、PUT和DELETE数据
现在,在每行的操作按钮中,我尝试做同样的操作,但我不知道如何在默认格式化程序操作上生成动态url。
我试试这个:
colModel : [
{name:'actions', index:'', width:80, fixed:true, sortable:false, resize:false,
formatter:'actions',
formatoptions:{
url: function(cellValue, rowId, rowData){
return restPutURL + '/' + rowId ;
},
mtype: 'PUT',
keys:true,
delOptions:{
url: restDelURL,
recreateForm: true,
beforeShowForm:beforeDeleteCallback,
onclickSubmit :function(params, postdata) {
params.url += '/' + postdata;
}
}
}
},
{ ...my cols.. }
]
删除操作可以,但编辑不起作用。当一行被保存时,jQGridsend函数作为URI:的一部分
system/function%20(cellValue,%20rowId,%20rowData)%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20console.log(cellValue);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/system/function%20(cellValue,%20rowId,%20rowData)%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20
如何创建动态URI?或者,如何将编辑行的id添加到URI?
如果使用当前版本的jqGrid,则可以在保存行之前使用beforeSaveRow
回调进行一些操作,如修改URL。不幸的是,formatter: "actions"
不允许您设置beforeSaveRow
回调,但您仍然可以使用$.jgrid.inlineEdit
来执行此操作。相应的代码可能类似
$.extend(true, $.jgrid.inlineEdit, {
beforeSaveRow: function (option, rowId) {
option.url = restPutURL + '/' + rowId;
}
});
或
$.extend(true, $.jgrid.inlineEdit, {
beforeSaveRow: function (option, rowId) {
option.url = this.p.editurl + '/' + rowId;
}
});