1. 程式人生 > >jqgrid行編輯

jqgrid行編輯

ondblClickRow: function(id){
	if(id && id !== lastsel){
		var rowData = $("#jqGridId").jqGrid("getRowData", id); 
		$('#jqGridId').jqGrid('restoreRow',lastsel);
		$('#jqGridId').jqGrid('editRow',id,{
			keys : true,		//這裡按[enter]儲存
			url: s2web.appURL + "jq/save.action",
			mtype : "POST",
			restoreAfterError: true,
			extraparam: {
				"ware.id": rowData.id,
				"ware.warename": $("#"+id+"_name").val(),
				"ware.createDate": $("#"+id+"_date").val(),
				"ware.number": $("#"+id+"_amount").val(),
				"ware.valid": $("#"+id+"_type").val()
			},
			oneditfunc: function(rowid){
				console.log(rowid);
			},
			succesfunc: function(response){
				alert("save success");
				return true;
			},
			errorfunc: function(rowid, res){
				console.log(rowid);
				console.log(res);
			}
		});
	}
}
jQuery("#grid_id").jqGrid('editRow',rowid, keys, oneditfunc, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc);
jQuery("#grid_id").jqGrid('editRow',rowid,  {
	"keys" : false,
	"oneditfunc" : null,
	"successfunc" : null,
	"url" : null,
        	"extraparam" : {},
	"aftersavefunc" : null,
	"errorfunc": null,
	"afterrestorefunc" : null,
	"restoreAfterError" : true,
	"mtype" : "POST"
});
這裡對以上各個引數的意思做一個簡單的描述
  • rowid:當前編輯的rowid
  • succesfunc:如果定義了改函式,將會在請求成功呼叫後立即返回,該函式簽名包括server返回的資料。同時該函式需要返回tue/false
  • url: 如果定義了改值,將會覆蓋jqGrid中的editurl(當然,如果沒有url和editurl是會報錯的)。如果url="clientArray" 那麼就不會向server端觸發請求,可在後期手動呼叫修改
  • extraparam:請求引數列表{name:value, name:value},將會append到requestData中向server端傳送
  • aftersavefunc:如果定義了改函式,將會在資料向server端儲存後立即呼叫,該函式接受rowid、response引數。同樣如果是上面的url="clientArray"該函式同樣執行
  • errorfunc:如果定義了改函式,將會在資料向server端儲存後呼叫,該函式接受rowid、response引數
  • afterrestorefunc:如果定義了改函式,將在restoreRow後呼叫,接受rowid作為引數
寫道 editRow //在使用者出發edit事件時呼叫該方法
saveRow //使用者不需要呼叫該方法,在edit時會自動呼叫
restoreRow //回滾當前editRow
addRow //新增row
inlineNav
$("#addBtn").bind("click", function() {
		$("#jqGridId").jqGrid('addRow',{
			rowID : "new_row",
		    initdata : {},
		    position :"first",
		    useDefValues : true,
		    useFormatter : true,
		    addRowParams : {extraparam:{
		    	
		    }}
		});
		//當前新增id進入可編輯狀態
		$('#jqGridId').jqGrid('editRow','new_row',{
			keys : true,		//這裡按[enter]儲存
			url: s2web.appURL + "jq/save.action",
			mtype : "POST",
			restoreAfterError: true,
			extraparam: {
			},
			oneditfunc: function(rowid){
				console.log(rowid);
			},
			succesfunc: function(response){
				alert("save success");
				return true;
			},
			errorfunc: function(rowid, res){
				console.log(rowid);
				console.log(res);
			}
		});
	
}); 
轉自http://mj4d.iteye.com/blog/1633462