-
环境: IE8、 EasyUI 1.4.4
-
错误描述: 用datagrid控件,使用js方式指定columns,代码如下:
$("#tt").datagrid({columns:[[
{field:'startDate',title:'任务开始时间',width:120},
{field:'stopDate',title:'任务结束时间',width:120},
]]})
在IE8打开页面报错:‘rowspan’为null或不是对象;在chrome下没有问题。
- 分析过程: 根据提示找到出现错误的代码片段:
for(var j=0;j<cols.length;j++){
var col=cols[j];
var attr="";
if(col.rowspan){
attr+="rowspan=\""+col.rowspan+"\" ";
}
if(col.colspan){
attr+="colspan=\""+col.colspan+"\" ";
}
原来是col为空,导致报错!为什么col会为空呢? 经试验发现在columns最后一个field后面,出现一个逗号,导致ie8计算出来的cols.length为3(其实际值为2),当访问cols[2]时出现空指针异常。
- 解决办法: 删除末尾的逗号即可