0

我想发送要更新的行数据,但是当创建 jqgrid 时,数据类型设置为“本地”。我正在尝试在 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");
4

1 回答 1

2

您发布的代码很奇怪。首先,您使用未定义的变量editSettings。该值将在editSettings稍后分配。不应该奇怪回调onclickSubmit不会被调用。

同样,我看不到您在哪里定义myGridmydata。您使用的是真实代码吗?

顺便说一句,我认为在不指定data参数的情况下创建 jqGrid 然后用于setGridParam设置datatype为“本地”(它已经是“本地”)、更改data参数并重新加载网格是没有意义的。data: mydata在创建网格时可以直接使用参数。

$.ajax我认为使用insideonclickSubmit手动将数据发布到服务器没有任何意义,因为 jqGrid 在内部执行相同的操作。如果您需要一些将发送到服务器的自定义数据序列化,您可以使用serializeEditData回调。如果您只需要设置一些附加选项$.ajax(如contentType),您可以使用ajaxEditOptions选项。

于 2013-03-28T07:41:07.500 回答