删除行时jqGrid附加POST数据

我需要我的ro基于两个ID,Userid和certID。 当添加和更新它工作正常,但删除时我需要这两个ID删除我在数据库中的记录,但所有出来的POST数据是“id”和“oper”,我需要将额外的certId添加到发布数据。 这是我的代码:

   jQGrid PHP inline Editing Tutorial  <!---->           $.jgrid.defaults.width = 780; $.jgrid.defaults.responsive = true; $.jgrid.defaults.styleUI = 'Bootstrap';    
$(document).ready(function () { $("#jqGrid").jqGrid({ url: 'getUserCertList.php', editurl: 'UserCertUpdate.php', mtype: "GET", datatype: "json", page: 1, colModel: [ { label: 'userID', name: 'id', editable: false, editrules: { edithidden: true }, hidden: true, width: 40, align: 'left' }, { label: 'certificationid', name: 'certificationid', key: true, editable: false, editrules: { edithidden: true }, hidden: true, width: 40, align: 'left' }, { label: 'Certification', name: 'certid', width: 200, editable: true, edittype: "select", editrules : { required: true}, editoptions : {dataUrl: "getCertList.php"} }, { label : 'Date Certified', name : 'dateCertified', width : 80, align : 'center', editable : true, sortable : true, sorttype : 'date', edittype : "text", editrules : { required: true}, editoptions : { // dataInit is the client-side event that fires upon initializing the toolbar search field for a column // use it to place a third party control to customize the toolbar dataInit: function (element) { $(element).datepicker({ autoclose: true, format: 'yyyy-mm-dd', orientation : 'auto bottom' }); } } }, { label : 'Verified', name : 'verified', width : 40, align : 'center', sorttype : "number", editable : false, edittype : "checkbox", editoptions : { value: "True:False" }, formatter : "checkbox", formatoptions: { disabled: true } }, ], loadonce : true, //onSelectRow: editRow, // the javascript function to call on row click. will ues to to put the row in edit mode viewrecords: true, height: 300, rowNum: 20, rownumbers: true, // show row numbers rownumWidth: 35, // the width of the row numbers columns pager: "#jqGridPager" }); $('#jqGrid').navGrid("#jqGridPager", {edit: false, add: false, del: true, refresh: true, view: true, search:false}, {delData: { name: function() { var cert_id = $('#jqGrid').jqGrid('getGridParam', 'selrow'); var value = $('#jqGrid').jqGrid('getCell', cert_id, 'colName'); return value; } } }); $('#jqGrid').inlineNav('#jqGridPager',{edit: false,add: true,del: true,cancel: true, editParams: {keys: true,}, addParams: {keys: true}, }); });

网格有两个隐藏的列: 'id'label: 'userID' )和'certificationid' ,你使用key: true作为'certificationid'列。

如果我正确理解您的问题,则来自两个值userIDcertificationid的组合指定了需要删除的项目。 在这种情况下,最好更改从服务器返回的数据,并使用userID + "_" + certificationid作为服务器响应中id属性的值。 顺便说一句,网格不需要隐藏'id'列。 id值将用于指定行的id属性值(

元素)。 因此,不需要在隐藏列的

中保存相同的信息。

我无法在服务器端进行建议的更改,然后您可以使用onclickSubmit回调来扩展数据。 您提出的代码在Edit窗体的选项中使用了delData ,这是错误的:

 $('#jqGrid').navGrid("#jqGridPager", {edit: false, add: false, del: true, view: true, search: false}, {}, // edit parameters {}, // add parameters { // del parameters onclickSubmit: function (options, delId) { // get the vale from 'id' (label: 'userID') column // and extend the postdata with name property return { name: $(this).jqGrid('getCell', delId, 'id') }; } } );