jQuery MiniUI
标题:
使用mini.decode()在IE11中报错!
[打印本页]
作者:
魔力睿睿
时间:
2018-5-4 11:46:50
标题:
使用mini.decode()在IE11中报错!
本帖最后由 魔力睿睿 于 2018-5-4 11:49 编辑
我在测试动态生成表头时,在谷歌浏览器下测试没有问题,但在IE11中测试时,提示错误:
[attach]10828[/attach]
通过调试,发现是在执行mini.decode()时发生的错误,是表头数据有问题吗?但是单独使用下面的数据,进行grid.set是可以成功的。。。
columns: [
{ header: "2018年3月", columns:[
{ field: "2018-3-16", width: 20, headerAlign:"center",align:"center",header: "16"},
{ field: "2018-3-17", width: 20, headerAlign:"center",align:"center",header: "17"},
{ field: "2018-3-18", width: 20, headerAlign:"center",align:"center",header: "18"},
{ field: "2018-3-19", width: 20, headerAlign:"center",align:"center",header: "19"},
{ field: "2018-3-20", width: 20, headerAlign:"center",align:"center",header: "20"},
{ field: "2018-3-21", width: 20, headerAlign:"center",align:"center",header: "21"},
{ field: "2018-3-22", width: 20, headerAlign:"center",align:"center",header: "22"},
{ field: "2018-3-23", width: 20, headerAlign:"center",align:"center",header: "23"},
{ field: "2018-3-24", width: 20, headerAlign:"center",align:"center",header: "24"},
{ field: "2018-3-25", width: 20, headerAlign:"center",align:"center",header: "25"},
{ field: "2018-3-26", width: 20, headerAlign:"center",align:"center",header: "26"},
{ field: "2018-3-27", width: 20, headerAlign:"center",align:"center",header: "27"},
{ field: "2018-3-28", width: 20, headerAlign:"center",align:"center",header: "28"},
{ field: "2018-3-29", width: 20, headerAlign:"center",align:"center",header: "29"},
{ field: "2018-3-30", width: 20, headerAlign:"center",align:"center",header: "30"},
{ field: "2018-3-31", width: 20, headerAlign:"center",align:"center",header: "31"}]},
{ header: "2018年4月", columns:[
{ field: "2018-4-1", width: 20, headerAlign:"center",align:"center",header: "1"},
{ field: "2018-4-2", width: 20, headerAlign:"center",align:"center",header: "2"},
{ field: "2018-4-3", width: 20, headerAlign:"center",align:"center",header: "3"},
{ field: "2018-4-4", width: 20, headerAlign:"center",align:"center",header: "4"},
{ field: "2018-4-5", width: 20, headerAlign:"center",align:"center",header: "5"},
{ field: "2018-4-6", width: 20, headerAlign:"center",align:"center",header: "6"},
{ field: "2018-4-7", width: 20, headerAlign:"center",align:"center",header: "7"},
{ field: "2018-4-8", width: 20, headerAlign:"center",align:"center",header: "8"},
{ field: "2018-4-9", width: 20, headerAlign:"center",align:"center",header: "9"},
{ field: "2018-4-10", width: 20, headerAlign:"center",align:"center",header: "10"},
{ field: "2018-4-11", width: 20, headerAlign:"center",align:"center",header: "11"},
{ field: "2018-4-12", width: 20, headerAlign:"center",align:"center",header: "12"},
{ field: "2018-4-13", width: 20, headerAlign:"center",align:"center",header: "13"},
{ field: "2018-4-14", width: 20, headerAlign:"center",align:"center",header: "14"},
{ field: "2018-4-15", width: 20, headerAlign:"center",align:"center",header: "15"},
{ field: "2018-4-16", width: 20, headerAlign:"center",align:"center",header: "16"},
{ field: "2018-4-17", width: 20, headerAlign:"center",align:"center",header: "17"},
{ field: "2018-4-18", width: 20, headerAlign:"center",align:"center",header: "18"},
{ field: "2018-4-19", width: 20, headerAlign:"center",align:"center",header: "19"},
{ field: "2018-4-20", width: 20, headerAlign:"center",align:"center",header: "20"},
{ field: "2018-4-21", width: 20, headerAlign:"center",align:"center",header: "21"},
{ field: "2018-4-22", width: 20, headerAlign:"center",align:"center",header: "22"},
{ field: "2018-4-23", width: 20, headerAlign:"center",align:"center",header: "23"},
{ field: "2018-4-24", width: 20, headerAlign:"center",align:"center",header: "24"}
]}
]}
复制代码
[attach]10829[/attach]
附js代码:
function setgrid(date){
var indate = date[0];
var outdate = date[1];
var findate = new Date(indate);//字符串转日期
var foutdate = new Date(outdate);
//获取起始日期的月份差
indate = indate.split('-');
indate = parseInt(indate[0])*12+parseInt(indate[1]);
outdate = outdate.split('-');
outdate = parseInt(outdate[0])*12+parseInt(outdate[1]);
var mlen = Math.abs(outdate-indate);
//获取起始日期天数差
var dlen = (foutdate-findate)/1000/60/60/24;
//拼接生成列的数组对象
var cols = '';
for(var j=0;j<=mlen;j++){
var yd = getYD(findate,j);
var mm=findate.getMonth()+1+j;
cols = cols+'{ header: "'+yd+'", columns:[';
for(var i=0;i<=dlen;i++){
var fielddate = addDate(findate,i);
var d = new Date(fielddate);
var m = d.getMonth()+1;
var day = d.getDate();
if(mm!=m) continue;
cols = cols+'{ field: "'+fielddate+'", width: 20, headerAlign:"center",align:"center",header: "'+day+'"},'
}
cols = cols.substr(0, cols.length - 1);
cols = cols+']},';
}
cols = cols.substr(0, cols.length - 1);
cols = '{columns: ['+cols+']}';
//console.log(cols);
var data = mini.decode(cols);//字符串序列化
var cos= grid.getColumns();//获取当前grid信息
cos.push(data);//添加列
grid.setColumns(cos);//设置列
}
复制代码
作者:
魔力睿睿
时间:
2018-5-4 15:17:04
有版主在吗?
作者:
魔力睿睿
时间:
2018-5-5 11:50:31
问题终于解决了,主要原因还是数据格式的问题,另外在IE中用JS把字符串转为日期类型时,不能识别“2018-05-05 00:00:00”这种格式,只能是“2018/05/05 00:00:00”的格式。
给大家推荐一个网站:
http://www.bejson.com/
能帮助你检查JSON数据格式。
欢迎光临 jQuery MiniUI (http://miniui.com/discuss/)
Powered by Discuz! X2