easyui复杂表头的动态生成

考勤页面需要将日期与星期进行对应,不同月份的时间及对应的星期不同,因此只能动态生成

var col=new Array();

var col1=new Array();
var col2=new Array();

将数据先初始化

col1.splice(0,col1.length);
col2.splice(0,col2.length);
col.splice(0,col.length);//首先需要将三个数据清空,否则每次刷新都会加载出重复的表头
var weTime = $("#month").val();
var timestamp1 = new Date(weTime);
var daysCount = getDaysInMonth(timestamp1);
for(var i=0;i<daysCount;i++){
    weekTime=weTime;
    var day=i+1;
    var weekTime=weTime+'/'+day;
    var timestamp = new Date(weekTime);
    var weekDay = ["日", "一", "二", "三", "四", "五", "六"];
    var daysi= 'days'+i;
    var week=weekDay[timestamp.getDay()]
    col1.push({"title":week,rowspan:1,width: 80, align: "center"})
    col2.push({ field:'days'+i, "title": i+1,width: 80, align: "center",formatter:function (value,row,index) {

        if(value==0){
            value='√'
            return value;
        }else if(value==1){
            value='△';
            return value;
        }else if(value==2){
            value='○';
            return value;
        }else if(value==3){
            value='X';
            return value;
        }else if(value==4){
            value='公';
            return value;
        }else if(value==5){
            value='●';
            return value;
        }else if(value==6){
            value='☆';
            return value;
        }

        }, rowspan:1,styler: function(value,row,index){
            if(value == 0){
                return 'background:#46A3FF;font-size: x-large;';
            }else if(value==1){
                return 'background:#FF8000';
            }else if(value==2){
                return 'background:#7E3D76';
            }else if(value==3){
                return 'background:#EA0000';
            }else if(value==4){
                return 'background:#0066CC';
            }else if(value==5){
                return 'background:#9999CC';
            }else if(value==6){
                return 'background:#FFFF37';
            }else if(value==null){
                return 'background:#00BB00';
            }
        }});
}

根据月份时间获取到此月份的天数,并查询出对应的星期

function getDaysInMonth(eDate) {
    var daysInMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
    daysInMonth[1] = isLeapYear(eDate) ? 29 : 28;
    return daysInMonth[eDate.getMonth()];
}

function isLeapYear(eDate) {
    var year = eDate.getFullYear();
    return (((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400));
}


这样就可以实现一一对应的表头

效果图如下

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值