grid 提供的getColumns()方法可以拿到列,然后對此進行處理。我們在數據加載完成load事件監聽中進行處理:
miniGrid["excelName"] = "考勤統計表"; miniGrid.on('load',function(e){ var columns = miniGrid.getColumns(); if(columns && columns.length>0 ){ var count = columns.length; for (var i = 0; i < count; i++) { var column = columns[i]; // 根據月份處理列的顯示 if(column.field =="28" || column.field =="29" ||column.field=="30"|| column.field=="31"){ var currentDays = window.SysCommon.getYearMonthDays(rykq.timeConditionData.years,parseInt(rykq.timeConditionData.month)); if(parseInt(column.field) > currentDays){ miniGrid.hideColumn(column); }else{ //miniGrid.showColumnsMenuAtEl(e.target); miniGrid.showColumn(column); } } } } }); miniGrid.on('drawcell',function(e){ var record = e.record; var column = e.column; if (column.field == "C_ORGNAME" || column.field == "C_USEREALNAME" || column.field == "WORK_DATE" || column.field == "MONTH_TOTAL_DAYS" || column.field == "WORK_DAYS" || column.field == "WORK_RATES") { return; } if (undefined == record[column.field]) { column.header=="序號"?"":e.cellHtml = "<span class='red-point' title='曠工'></span>"; } else if (parseInt(record[column.field]) == 1) { //出勤 e.cellHtml = "<span class='green-point' title='出勤' ></span>"; } else if (parseInt(record[column.field]) == 2) { //請假 e.cellHtml = "<span class='orange-point' title='請假' ></span>"; } else if (parseInt(record[column.field]) == 3) { //值班 e.cellHtml = "<span class='yellow-point' title='值班' ></span>"; } else if (parseInt(record[column.field]) == 4) { //學習 e.cellHtml = "<span class='purple-point' title='學習' ></span>"; } else if (parseInt(record[column.field]) == 5) { //外勤 e.cellHtml = "<span class='pink-point' title='外勤' ></span>"; } else if (parseInt(record[column.field]) == 6) { //培訓 e.cellHtml = "<span class='cyan-blue-point' title='培訓' ></span>"; } else if (parseInt(record[column.field]) == 7) { //調休 e.cellHtml = "<span class='black-red-point' title='調休' ></span>"; } else { e.cellHtml = "<span class='red-point' title='曠工'></span>"; //礦工 } })
示例是一個月考勤輸出,根據年月和考勤類型顯示不同的效果。每月天數有28、29、30、31天之分。