jqGrid實現虛擬滾動和合並單元格

如圖:
關鍵點:
1.scroll: 1, //虛擬滾動,解決大數據一次性加載慢的問題,同時解決分頁
2.function merge(names)//自定義函數

$(function () { //查詢 $("#querybtn").click(function () { var prm = {}; $("#querytb td [name]").each(function (ind, o) { prm[o.name] = $(o).val(); }); if ($("#jqgrid").data("jqgrid")) {//已經初始化 $("#jqgrid").jqGrid("setGridParam", { "postData": prm }) .trigger("reloadGrid"); } else { $("#jqgrid").jqGrid({ url: 'SCHandler.ashx?action=SCResult2', caption: "點檢結果", datatype: "json", pager: "#pager", postData: prm, height: ($(window).height() - 210), colNames: ["rid", "系統", "設備名稱", "部位", "項目", "點檢內容", "點檢時間", "點檢結果", "結果說明", "處理方式", "處理結果", "點檢人", "點檢單位"], colModel: [{ name: "rid", hidden: true, key: true }, { index: "系統", name: "系統", width: 80 }, { index: "設備名稱", name: "設備名稱", width: 80 }, { index: "部位", name: "部位", width: 80 }, { index: "項目", name: "項目", width: 80 }, { index: "點檢內容", name: "點檢內容", width: 80 }, { index: "點檢時間", name: "點檢時間", width: 100 }, { index: "點檢結果", name: "點檢結果", width: 60 }, { index: "結果說明", name: "結果說明" }, { index: "處理方式", name: "處理方式" }, { index: "處理結果", name: "處理結果" }, { index: "點檢人", name: "點檢人" }, { index: "點檢單位", name: "點檢單位", hidden: true } ], rowNum: 50, gridComplete: function () { merge(["系統", "設備名稱", "部位", "項目","點檢內容"]); }, cmTemplate: { editable: false, sortable: false, width: 80 }, scroll: 1, viewrecords: true, gridview: true }).bindKeys().data("jqgrid", true); } }); }); function merge(names) { var trs = $("#jqgrid>tbody>tr:gt(0)"); $.each(names, function (ind, name) { var bg = trs.eq(0).children("[aria-describedby='jqgrid_" + name + "']"), index = bg.index(), rowsp = 1; trs.slice(1).each(function (ind2, tr) { var me = $(tr).children("td").eq(index); if (bg.text() === me.text()) { rowsp++; me.hide(); } else { bg.attr("rowspan", rowsp); bg = me; rowsp = 1; } bg.attr("rowspan", rowsp); }); }); }
相關文章
相關標籤/搜索