我正在使用以下代码添加新记录。
jQuery("#list").jqGrid('editGridRow',"new",{height:545, width:425,recreateForm:true,reloadAfterSubmit:false,addedrow:'first',closeAfterAdd:true,top:110,left:350,modal:true});
我正在使用 reloadAfterSubmit:false 这意味着当新记录添加到网格时,我拥有的 ID 字段为空白。
有人可以非常简单地解释如何获取新记录的 ID 并将其放入我网格中的 ID 字段中。
我在这里找到了一个先前的答案,这似乎是我正在寻找的,但我不明白如何让它工作。文档说afterSubmit: function (response,postdata) {return [true, '', new_id];}
,但我没有如何实现这一点。
我是新手,所以我需要它说得很简单。
谢谢你的帮助。
更新:服务器响应:response.responseText
(!) 注意:未定义的偏移量:D:\wamp\www\EstimateTracker\UpdateEstimates.php 中的 1 第32行
调用堆栈#TimeMemoryFunctionLocation 10.0036402872{main}()..\UpdateEstimates.php : 0
( ! ) 注意:未定义的偏移量:D:\wamp\www\EstimateTracker\UpdateEstimates.php 中的 2 第32行
调用堆栈#TimeMemoryFunctionLocation 10.0036402872{main}( )..\UpdateEstimates.php : 0 String
更新 2:
$(function () {
$("#list").jqGrid({
url:'GetEstimates.php',
datatype: 'xml',
mtype: 'GET',
colNames:['ID','Campaign Name','ClientsID','Client Name','Buyer Name','Client Ref','Description','Sales','Estimator', 'Date Received', 'Date Required','Status','Product Type','Date Submitted','Price (£)', 'Keren No.','Reason Lost','Won Price (£)','Notes'],
colModel :[ {name:'ID', key:true,index:'ID', width:45,align:'center',editable:true,editoptions:{readonly:true,size:10, height:5}, {name:'CampaignName', index:'CampaignName', width:175, align:'left',editrules:{required:true},editable:true,editoptions:{size:35}}, {name:'ClientsID', index:'ClientsID', width:120, align:'left',editable:true,hidden:true}, {name:'ClientName', index:'ClientName', width:120, align:'left',editrules: required:true,custom_func:notEmpty,custom:true},editable:true,edittype:'select', editoptions:{dataUrl:'ClientDropDownGrid.php',dataInit: function () {
var thisval = $("#ClientsID").val();
$.get('GetBuyersGrid.php?id='+thisval, function(data) {
var res = $(data).html();
$("select#BuyerName").html(res);
}); // end get
}//end func
,dataEvents:[{type:'change',fn: function(e) {
var thisval = $(e.target).val();
$.get('GetBuyersGrid.php?id='+thisval, function(data){
var res = $(data).html();
$("select#BuyerName").html(res);
}); // end get
}//end func
} // end type
] // dataevents
}},
{name:'BuyerName', index:'BuyerName', width:100, align:'left',editable:true,edittype:'select',editoptions:{dataUrl:'BuyerDropDownGrid.php'}},
{name:'ClientEstimateRef', index:'ClientEstimateRef', width:125, align:'left', align:'left',editable:true,editoptions:{size:25}},
{name:'Description', index:'Description', width:125, align:'left', align:'left',editable:true,editoptions:{size:25}},
{name:'SalesName', index:'SalesName', width:100, align:'left',editrules:{required:true,custom_func:notEmpty,custom:true},editable: true,edittype:'select',editoptions:{dataUrl:'SalesDropDownGrid.php'},formoptions:{elmsuffix: '<a id="AddSales" href="AddSales.php">Add Sales</a>' }},
{name:'EstimatorName', index:'EstimatorName', width:100, align:'left',editrules:{required:true,custom_func:notEmpty,custom:true},editable: true,edittype:'select',editoptions:{dataUrl:'EstimatorDropDownGrid.php'} },
{name:'DateReceived', index:'DateReceived', width:80, align:'center',editrules:{required:true,custom_func:isValidDateRec,custom:true},editable:true,editoptions: {size: 15, maxlength: 10,dataInit: function(element) {$(element).datepicker({dateFormat: 'dd/mm/yy'}) } }},
{name:'DateRequired', index:'DateRequired', width:80, align:'center',editrules:{required:true},editable:true,editoptions: {size: 15, maxlength: 10,dataInit: function(element) {$(element).datepicker({dateFormat: 'dd/mm/yy'}) } }},
{name:'Status', index:'Status', width:100, align:'left',editable: true,edittype:'select',editoptions:{dataUrl:'StatusDropDownGrid.php', defaultValue:'4'} },
{name:'ProductType', index:'ProductType', width:100, align:'left',editrules:{required:true,custom_func:notEmpty,custom:true},editable: true,edittype:'select',editoptions:{dataUrl:'ProductTypeDropDownGrid.php'} },
{name:'DateSubmitted', index:'DateSubmitted', width:80, hidden:false, align:'center',editable:true,editoptions: {size: 15, maxlength: 10,dataInit: function(element) {$(element).datepicker({dateFormat: 'dd/mm/yy'}) } }},
{name:'Price', index:'Price', width:60, align:'right',editrules:{required:true,custom_func:isCurrency,custom:true},editable:true, formatter:currencyFmatter, unformat:unformatCurrency,editoptions:{size:15,defaultValue:'0.00'}, formoptions:{elmsuffix: 'GBP'}},
{name:'KerenNo', index:'KerenNo', width:80, align:'left',editable:true,editoptions:{size:20}},
{name:'ReasonLost', index:'ReasonLost', width:120, align:'left',editable: true,edittype:'select',editoptions:{dataUrl:'ReasonLostDropDownGrid.php'} },
{name:'WonPrice', index:'WonPrice', width:60, align:'right',editrules:{required:true,custom_func:isCurrency,custom:true},editable:true, formatter:currencyFmatter, unformat:unformatCurrency, editoptions:{size:15,defaultValue:'0.00'}, formoptions:{elmsuffix:'GBP'}},
{name:'Notes', index:'Notes', width:125, align:'left', align:'left',editable:true,edittype:'textarea',editoptions:{dataInit: function(elem){$(elem).width(200); $(elem).height(45);}}}
//{name:'total', index:'total', width:80, align:'right'},
//{name:'note', index:'note', width:150, sortable:false}
],
pager: '#pager',
rowNum:20,
rowList:[10,20,30],
sortname: 'ID',
sortorder: 'asc',
viewrecords: true,
gridview: true,
caption: 'Estimates',
width:880,
height:400,
multiselect:true,
editurl:'UpdateEstimates.php',
shrinkToFit:false
});
//edit row
$("#editButton").click(function(){
var gr = jQuery("#list").jqGrid('getGridParam','selrow');
if( gr != null ) jQuery("#list").jqGrid('editGridRow',gr,{height:545, width:425,recreateForm:true,reloadAfterSubmit:false,closeAfterEdit:true,top:110,left:350,viewPagerButtons:false,modal:true,beforeShowForm: function(form) { $('#tr_DateSubmitted', form).show();}});
else alert("Please Select Row");
});
//add row
$("#addButton").click(function(){
//var gr = jQuery("#list").jqGrid('getGridParam','selrow');
jQuery("#list").jqGrid('editGridRow',"new",{height:545, width:425,recreateForm:true,reloadAfterSubmit:false,afterSubmit: function(response){return [true,'','45765'];},addedrow:'first',closeAfterAdd:true,top:110,left:350,modal:true});
});
});