關鍵點:
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);
});
});
}