JQuery EasyUI DataGrid动态合并单元格

1、JS

 1    /**
 2         * EasyUI DataGrid根据字段动态合并单元格
 3         * @param fldList 要合并table的id
 4         * @param fldList 要合并的列,用逗号分隔(例如:"name,department,office");
 5         */
 6         function MergeCells(tableID, fldList) {
 7             var Arr = fldList.split(",");
 8             var dg = $('#' + tableID);
 9             var fldName;
10             var RowCount = dg.datagrid("getRows").length;
11             var span;
12             var PerValue = "";
13             var CurValue = "";
14             var length = Arr.length - 1;
15             for (i = length; i >= 0; i--) {
16                 fldName = Arr[i];
17                 PerValue = "";
18                 span = 1;
19                 for (row = 0; row <= RowCount; row++) {
20                     if (row == RowCount) {
21                         CurValue = "";
22                     }
23                     else {
24                         CurValue = dg.datagrid("getRows")[row][fldName];
25                     }
26                     if (PerValue == CurValue) {
27                         span += 1;
28                     }
29                     else {
30                         var index = row - span;
31                         dg.datagrid('mergeCells', {
32                             index: index,
33                             field: fldName,
34                             rowspan: span,
35                             colspan: null
36                         });
37                         span = 1;
38                         PerValue = CurValue;
39                     }
40                 }
41             }
42         }

2、html

<table id="DataGrid" class="easyui-datagrid" fit="true" border="false" toolbar="#TBar" pagination="true" 
          data-options="autoRowHeight:false,pageSize:50,pageList: [10, 20, 30, 40, 50,100,5000],idField:'zhbid',sortName:'zhbbh', queryParams: { 'action': 'query'}
          ,onLoadSuccess:function(data){ MergeCells('DataGrid','mkmch,zhbmch');},onDblClickRow: onClickRow" 
          rownumbers="true" singleSelect="true" url="../Source/Data/zhbdata.ashx?mxbs=MON">  
        <thead>  
            <tr>  
                <th field="zhbid" hidden="true" sortable="true" width="100"  rowspan="2">指标ID</th> 
                <th field="zhbbs" hidden="true" sortable="true" width="100" rowspan="2">指标ID</th> 
                <th field="mxid" hidden="true" sortable="true" width="100" rowspan="2">模块ID</th> 
                <th field="dwid" hidden="true" sortable="true" width="100" rowspan="2">单位ID</th> 
                <th field="rq" hidden="true" sortable="true" width="100" rowspan="2">日期</th> 

                <th field="mkmch" sortable="true" width="80"  data-options="headalign:'center',align:'center'" rowspan="2">板 块</th> 
                <th field="zhbmch" sortable="true" width="150"  data-options="headalign:'center'" rowspan="2">指标名称</th> 
                <th field="dw" sortable="true" width="80"  data-options="headalign:'center'" rowspan="2">指标单位</th> 
                <th field="shn_ljzh" sortable="true" width="80" data-options="headalign:'center',editor:{type:'numberbox',options:{precision:3}}" rowspan="2">上一年度<br />同期累计<br />完成值</th>  
                <th field="bn_jh" sortable="true" width="80" data-options="headalign:'center'" rowspan="2">已下达年<br />计划</th>  
                <th colspan="4">指标完成情况</th> 
                <th field="mxmch" sortable="true" width="250" data-options="headalign:'center'" rowspan="2">基础数据</th>  
                <th field="mxzh" sortable="true" width="80" data-options="headalign:'center',editor:{type:'numberbox',options:{precision:3}}" rowspan="2">基础数据<br />(本期)</th>  
                <th field="beizhu" sortable="true" width="350"  data-options="headalign:'center'" rowspan="2">备 注</th>  
            </tr>
            <tr>
                <th field="bq_zh" sortable="true" width="90"  data-options="headalign:'center'">本期完成值</th> 
                <th field="bn_ljzh" sortable="true" width="90"  data-options="headalign:'center'">累计完成值</th> 
                <th field="bn_ljtb" sortable="true" width="80"  data-options="headalign:'center'">同 比</th> 
                <th field="bn_tb" sortable="true" width="80"  data-options="headalign:'center'">与计划比</th> 
            </tr>
        </thead>  
    </table>  
posted @ 2012-11-20 23:32  EasyPass  阅读(18212)  评论(0编辑  收藏  举报