jqgrid合並單元格
1 $(grid_selector).jqGrid({ 2 url: "${ctx!}/order/info/queryOrderList", 3 datatype: "json", 4 mtype: "post", 5 postData:$("#order_search_form").serializeObject(), 6 caption: "aa", 7 autowidth: true, 8 height: "100%", 9 colModel: [ 10 { label: "id", name: "id", width: 90, hidden:true },//子訂單id 11 { label: "mid", name: "mid", width: 90, hidden:true },//主訂單id 12 {label: "操作",name: "", width: 75, fixed:true, sortable:false, resize:false, 13 formatter:'actions', 14 formatoptions:{ 15 keys:true 16 ,delOptions:{ 17 recreateForm: true,//創建表單 18 beforeShowForm: BLN_jqGrid.style_delete_form//在每次點擊編輯的時候都會執行。 19 } 20 } 21 }, 22 { label: "航站", name: "value",sortable:false, width: 50,align:'center'}, 23 { label: '主訂單',name: "main_no", index: 'total', width: 60,align:'center', 24 sortable: false, formatter: viewMainOrder, 25 cellattr: function(rowId, value, rowObject, colModel, arrData) { 26 return 'id=\'main_no' + rowId + "\'";//①給當前想合並的單元格設置id 27 } 28 }, 29 { label: '子訂單', width: 60,align:'center', 30 sortable: false, formatter: viewSubOrder, 31 }, 32 { label: '貨物圖片', width: 60,align:'center', 33 sortable: false, formatter: viewSubFile, 34 }, 35 { label: "操作人", name: "user_name",sortable:false, width: 30,align:'center'}, 36 { label: "上傳時間", name: "create_time",sortable:false, width: 60,align:'center'}, 37 { label: "修改時間", name: "modify_time",sortable:false, width: 60,align:'center'} 38 ], 39 viewrecords: true, 40 rowNum: 10, 41 rowList:[10,20,30,40], 42 rownumbers: true, 43 altRows: true, 44 multiselect: true, 45 multiboxonly: false, 46 pager:pager_selector, 47 loadComplete : function(data) { 48 if(SQ.isFAIL(data)){ 49 bootbox.alert(SQ.getMessage(data)); 50 return; 51 } 52 var table = this; 53 setTimeout(function(){ 54 BLN_jqGrid.styleCheckbox(table);//復選框風格 55 BLN_jqGrid.updateActionIcons(table);//更新操作圖標 56 BLN_jqGrid.updatePagerIcons(table);//更新頁面圖標 57 BLN_jqGrid.enableTooltips(table);//啟用工具提示 58 59 setTimeout(function(){$(window).triggerHandler('resize.jqGrid');},0);//觸發窗口調整網格得到正確的大小 60 $(grid_selector+" [id^='jEditButton_']").removeAttr("onclick"); 61 $(grid_selector+" [id^='jEditButton_']").on('click', function(){ 62 var index = $(this).attr("id").substr("jEditButton_".length); 63 var rd = $(grid_selector).getRowData(index); 64 editOrderInfoBef(rd); 65 }); 66 $(grid_selector+" [id^='jDeleteButton_']").removeAttr("onclick"); 67 $(grid_selector+" [id^='jDeleteButton_']").on('click', function(){ 68 var index = $(this).attr("id").substr("jDeleteButton_".length); 69 var rd = $(grid_selector).getRowData(index); 70 deleteOrderInfoBef(rd); 71 }); 72 }, 0); 73 74 //合並單元格 75 var gridName = "order_grid"; 76 Merger(gridName, 'main_no'); 77 } 78 }); 79 //公共調用方法 80 function Merger(gridName, CellName) { 81 //得到顯示到界面的id集合 82 var mya = $("#" + gridName + "").getDataIDs(); 83 //console.log(mya); 84 //當前顯示多少條 85 var length = mya.length; 86 for (var i = 0; i < length; i++) { 87 //從上到下獲取一條信息 88 var before = $("#" + gridName + "").jqGrid('getRowData', mya[i]); 89 //定義合並行數 90 var rowSpanTaxCount = 1; 91 for (j = i + 1; j <= length; j++) { 92 //和上邊的信息對比 如果值一樣就合並行數+1 然后設置rowspan 讓當前單元格隱藏 93 var end = $("#" + gridName + "").jqGrid('getRowData', mya[j]); 94 if (before[CellName] == end[CellName]) { 95 rowSpanTaxCount++; 96 $("#" + gridName + "").setCell(mya[j], CellName, '', { display: 'none' }); 97 } else { 98 rowSpanTaxCount = 1; 99 break; 100 } 101 $("#" + CellName + "" + mya[i] + "").attr("rowspan", rowSpanTaxCount); 102 } 103 } 104 }