我想发送要更新的行数据但是在创建jqgrid时,数据类型设置为“Local”。我正在尝试在onSubmiClick中设置dataType:“json”并希望发送行数据(要发布到REST方法的数据)。这是我的JqGrid代码块。任何帮助表示赞赏。
var editSettings = {
recreateForm:true,
jqModal:false,
reloadAfterSubmit:true,
closeOnEscape:true,
closeAfterEdit:true,
addCaption: "Edit Scripts",
onclickSubmit: function(params,postdata) {
$.ajax({
type : "POST",
url : "/fnol-maintenance/reports/update",
contentType : "application/json; charset=utf-8",
data : {
jqGridData : postdata //I'm trying to figure out how to pass the row data being edited using jQgrid Form Edit.
},
dataType : "json",
asynch : false
});
return{};
}};
myGrid = $("#mygrid").jqGrid({
caption: "FNOL Maintenance Report",
datatype: "local",
colNames: myColNames,
colModel: myColModel,
pager: '#mypager',
//rowNum: 10000,
rowList: [10, 20, 50, 100],
viewrecords: true,
autowidth: true,
gridview: true,
ignorecase: true,
altRows: true,
altclass: 'myAltRowClass',
height: gridHeight, //commented to use browser vertical scrollbar
//height: "100%", //un-commented to use browser vertical scrollbar
loadtext: "Loading data...",
//forceFit: true
//headertitles: true,
footerrow: true,
userDataOnFooter: true,
editUrl: '/fnol-maintenance/reports/update'
});
myGrid.jqGrid('navGrid','#mypager',{edit:true,add:false,del:false,search:false}, editSettings );
jQuery("#mygrid").jqGrid('setCaption', (myjsongrid.reportTitle==""?'Maintenance Report':myjsongrid.reportTitle));
myGrid.setGridParam({datatype: "local"});
myGrid.setGridParam({data: mydata}).trigger("reloadGrid");
//jQuery("#mygrid").jqGrid('navGrid','#mypager',{del:false,add:false,edit:true,search:false});
//alert("after ajax");
答案 0 :(得分:2)
您发布的代码非常奇怪。首先,您使用未定义的变量editSettings
。该值稍后将分配给editSettings
。不应该怀疑回调onclickSubmit
不会被调用。
以同样的方式,我看不到您定义的位置myGrid
,mydata
等。您使用的是真实的代码吗?
顺便说一下,我认为在没有指定data
参数的情况下创建jqGrid然后使用setGridParam
将datatype
设置为“local”(它已经是“本地”)是没有意义的,更改data
参数并重新加载网格。在创建网格时,可以直接使用data: mydata
参数。
我认为在$.ajax
内使用onclickSubmit
手动将数据发布到服务器没有任何意义,因为jqGrid在内部执行相同的操作。如果您需要一些将发送到服务器的数据的自定义序列化,您可以使用serializeEditData回调。如果您只需设置$.ajax
的其他选项(例如contentType
),则可以使用ajaxEditOptions选项。