datagrid组合表头、行/列单元格融合
一直做java后台开发,最近开始接触前端开发。将开发中碰见的问题整理在这里,方便以后查阅。
碰见的需求是这样的:
var data = [{"type":"平均值","two":"6.0%","three":"11.1%","four":"20.1%","five":"22.6%","six":"20.8%","seven":"11.1%","eight":"2.4%","nine":"0.2%","age":"5.6%","man":"31.6%","woman":"62.3%","gender":"6.1%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"1","two":"5.5%","three":"10.7%","four":"17.3%","five":"23.3%","six":"22.9%","seven":"13.5%","eight":"2.1%","nine":"0.2%","age":"4.6%","man":"41.0%","woman":"54.0%","gender":"5.0%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"2","two":"7.3%","three":"10.2%","four":"18.1%","five":"20.4%","six":"23.7%","seven":"12.4%","eight":"2.7%","nine":"0.1%","age":"5.2%","man":"36.0%","woman":"58.8%","gender":"5.1%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"3","two":"6.3%","three":"10.1%","four":"19.4%","five":"21.7%","six":"21.4%","seven":"11.5%","eight":"3.3%","nine":"0.3%","age":"5.9%","man":"32.1%","woman":"61.0%","gender":"7.0%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"4","two":"5.9%","three":"10.0%","four":"20.5%","five":"22.2%","six":"20.6%","seven":"12.2%","eight":"2.9%","nine":"0.1%","age":"5.6%","man":"32.2%","woman":"61.8%","gender":"6.0%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"5","two":"7.2%","three":"11.2%","four":"18.8%","five":"20.8%","six":"20.6%","seven":"12.4%","eight":"2.4%","nine":"0.1%","age":"6.5%","man":"30.3%","woman":"62.8%","gender":"7.0%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"6","two":"4.5%","three":"10.7%","four":"19.4%","five":"21.9%","six":"21.4%","seven":"13.4%","eight":"3.0%","nine":"0.3%","age":"5.2%","man":"29.6%","woman":"64.7%","gender":"5.7%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"7","two":"5.3%","three":"11.2%","four":"20.6%","five":"21.6%","six":"21.5%","seven":"11.2%","eight":"3.0%","nine":"0.3%","age":"5.3%","man":"28.9%","woman":"65.5%","gender":"5.6%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"8","two":"5.7%","three":"10.6%","four":"22.7%","five":"25.3%","six":"19.6%","seven":"9.4%","eight":"1.6%","nine":"0.0%","age":"5.1%","man":"29.9%","woman":"64.1%","gender":"5.9%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"9","two":"6.5%","three":"12.7%","four":"21.4%","five":"24.9%","six":"18.3%","seven":"8.2%","eight":"1.7%","nine":"0.0%","age":"6.2%","man":"29.6%","woman":"63.6%","gender":"6.8%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"},
{"type":"10","two":"6.3%","three":"13.2%","four":"23.0%","five":"24.2%","six":"18.2%","seven":"7.1%","eight":"1.3%","nine":"0.1%","age":"6.6%","man":"26.3%","woman":"66.9%","gender":"6.8%","distance1":"0%","distance2":"0%","distance3":"0%","distance4":"0%","distance5":"0%","distance6":"0%"}];
$('#table').datagrid({
data:data,
fitColumns:false,
scrollbarSize :0,
frozenColumns: [[
{ title: '表格',field:'type',width:100,align:"left"}
]],
columns:[
[
{"title":"年龄",colspan:9,rowspan:2,id:"object_age"},
{"title":"性别",colspan:2,id:"object_sex"},
{"title":"测试",field:'gender',align:"right",halign: 'left',width:100,rowspan:3},
{"title":"距离",colspan:5,id:"object_distance"},
{field:'distance6',title:'其他',align:"right",halign: 'left',width:100,rowspan:3}
],
[
{"title":"性别二标题",colspan:2,id:"object_sex"},
{"title":"距离二标题",colspan:5,id:"object_distance"}
],
[
{field:'two',title:'20岁',align:"right",halign: 'left',width:100},
{field:'three',title:'30岁',align:"right",halign: 'left',width:100},
{field:'four',title:'40岁',align:"right",halign: 'left',width:100},
{field:'five',title:'50岁',align:"right",halign: 'left',width:100},
{field:'six',title:'60岁',align:"right",halign: 'left',width:100},
{field:'seven',title:'70岁',align:"right",halign: 'left',width:100},
{field:'eight',title:'80岁',align:"right",halign: 'left',width:100},
{field:'nine',title:'90岁',align:"right",halign: 'left',width:100},
{field:'age',title:'年龄不明',align:"right",halign: 'left',width:100},
{field:'man',title:'男性',align:"right",halign: 'left',width:100},
{field:'woman',title:'女性',align:"right",halign: 'left',width:100},
{field:'distance1',title:'1公里',align:"right",halign: 'left',width:100},
{field:'distance2',title:'1公里以上3公里未満',align:"right",halign: 'left',width:100},
{field:'distance3',title:'3公里以上5公里未満',align:"right",halign: 'left',width:100},
{field:'distance4',title:'5公里以上10公里未満',align:"right",halign: 'left',width:100},
{field:'distance5',title:'10公里以上15公里未満',align:"right",halign: 'left',width:100}
]
]
});
单元格的行融合或者列融合
首先,html页面上需要给datagrid一个回调函数:onLoadSuccess: onLoadSuccess。当datagrid加载成功后会执行onLoadSuccess方法。
<div style="width:100%;height:80%;" id="tab1_div">
<table id = "table1" class ="easyui-datagrid" style = "width:100%;height :380px;margin-right:15px;"fitColumns = "true"data-options="singleSelect: true,onLoadSuccess: onLoadSuccess">
<thead></thead>
</table>
</div>
function onLoadSuccess(){
//merges是被执行的操作的单元格的数组
//其中index表示单元格的下标,rowspan表示要融合的行数。
//下标按列分,从0开始
var merges = [{index:1,rowspan:2},{index:3,rowspan:7}];
for(var i=0; i<merges.length; i++){
$('#table1').datagrid('mergeCells',{
index:merges[i].index,
field:'type',
rowspan:merges[i].rowspan
});
}
//列融合,index单元格下标
$('#table1').datagrid('mergeCells', {
index: 10,
field: 'type',
colspan: 2
});
}
表格中取消垂直滚动条预留的空白位置
设置属性:
scrollbarSize :0