开发需求:使用easyUI开发报表,需要多层表头,表格也是多层嵌套。动态表头拼接,数据查询后动态筛选数据并过滤零值列。
遇到问题:动态过滤零值列后修改了顶层column的colspan属性导致不能正常展示内层嵌套表格;
解决方案:
var columns = $('#dg1').datagrid('options').columns;
var top_cols = columns[0];
if(top_cols[top_cols.length-1]['field']=="fukuanfangshimingxi"){
//添加自定义专有属性'true_colspan'解决直接修改最上层表头列'colspan'属性导致的显示错误
top_cols[top_cols.length-1]['true_colspan'] = top_cols[top_cols.length-1]['colspan'];
}
然后再需要修改colspan属性的地方修改自定义属性
if(top_cols[top_cols.length-1]['field']=="fukuanfangshimingxi"){
top_cols[top_cols.length-1]['true_colspan']-=1;
//top_cols[top_cols.length-1]['colspan'] -= 1;
//$('#dg1').datagrid('changeColumnSpan', {field:"fukuanfangshimingxi",new_col_span_num:top_cols[top_cols.length-1]['colspan']});
}
问题原因:推测应该是修改顶层column的colspan属性会导致easyui重新计算table和td宽度