jqgrid 行內修改單元格內容


由於字段較多,但可供用戶修改的 字段僅有一個,所有不想通過彈出對話框的方式讓用戶進行修改。還好jqgrid支持行內數據修改,首先要將cellEdit設為true以支持對單元格的 修改操作。這里講cellsubmit設為clientArray,當修改完成后並不直接發送到服務器進行保存,而是先保存在table中,當用戶點擊保 存按鈕是才向數據庫發送請求更新數據。

 cellEdit: true,
 cellsubmit: "clientArray", //當單元格發生變化后不直接發送請求、"remote"默認直接發送請求

要修改的字段是select類型:

{name:'YCFWZT',index:'YCFWZT', width:80,align:"center",sortable:false,formatter:'select', formatoptions:{value:{1:'正常', 2:'維修', 3:'常用'}}, editable:true,edittype:'select',editoptions:{value:{1:'正常', 2:'維修', 3:'常用'}}},

這里有一個問題,就是當用戶修改該字段后直接進行保存操作,由於修改后的數據未保存到table中,而且原數據丟失,會導致字段為空。所以要先設法 使被編輯的單元格失去焦點,數據即可保存到本地table中。這里當用戶點擊保存按鈕后首先讓每行的第一個字段獲取焦點,這樣數據就會得到保存,然后進行 保存操作:

$("#list2").editCell(rowid, 1, true);

onSelectRow: function(id){
  if(id && id!==lastsel2){
     jQuery('#detailStatisticsTab').jqGrid('saveRow',lastsel2); //$('#detailStatisticsTab').restoreRow(lastsel2);
     jQuery('#detailStatisticsTab').jqGrid('editRow',id,true); //jQuery('#gridid').editRow(id, true);  
     lastsel2=id;
   }
}

 jqGrid重置

$('#detailStatisticsTab').trigger("reloadGrid"); // 重新載入

jqGrid遍歷所有行

var rowIds = $("#detailStatisticsTab").jqGrid('getDataIDs');
var paraArr = [];
for
(var i=0,j = rowIds.length - i;i < j; i++) { var rowData = $("#detailStatisticsTab").jqGrid('getRowData',rowIds[i]); var MC_STATE_NAME = rowData.MC_STATE_NAME; var MC_STATE = rowData.MC_STATE;var param = {   MC_ID: rowData.MC_ID, MC_STATE: MC_STATE }; //paraArr.push(param); paraArr.push(JSON.stringify(param)); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM