1 function initTable(tableID) {
2 $("#" + tableID).bootstrapTable('destroy');
3 $('#' + tableID).bootstrapTable({
4 method: 'post',
5 url: primary_url,
6 contentType: "application/x-www-form-urlencoded; charset=UTF-8",
7 showRefresh: false,
8 // height: $(window).height()+500,
9 striped: true,
10 pagination: false,
11 paginationLoop: false,
12 singleSelect: false,
13 // pageSize: 300,
14 pageList: ['All'], //设置为 All 或者 Unlimited,则显示所有记录。
15 search: false, //不显示 搜索框
16 showHeader: true,
17 showColumns: false, //不显示下拉框(选择显示的列)
18 showExport: false,//是否显示导出
19 paginationVAlign: "bottom",
20 exportDataType: "all",
21 sidePagination: "server", //服务端请求
22 queryParams: queryParams,
23 sortable: false, //是否允许排序.
24 minimunCountColumns: 2,
25 queryParamsType: 'limit',
26 columns: [{
27 field: '大项',
28 title: '评估大项',
29 width: '7%',
30 align: 'left',
31 valign: 'middle',
32 formatter: joinPingGuDaXiang,
33 sortable: true
34 }, {
35 field: '小项',
36 title: '评估小项',
37 width: '10%',
38 align: 'left',
39 valign: 'middle',
40 formatter: joinPingGuXiaoXiang,
41 sortable: true
42 }, {
43 field: '小项序号',
44 title: '序号',
45 width: '3%',
46 align: 'center',
47 valign: 'middle',
48 sortable: true
49 }],
95 onLoadError: function (data) {
96
97 },
98 onLoadSuccess: function (data) {
99 if (data.code == "1" && data.message == "成功") {
100 // console.log( $('#' + tableID)["0"].clientHeight); //这种办法可以取到bootstrap表格的高度
101 /*
102 要根据当前行的大项 == prevBigItem,和当前行的小项的parentid是否相同,结合来判定合并表格的单元格.
103 */
104 var prevBigItem = ""; //前一行的评估大项
105 var prevSmallItem = ""; //前一行的评估小项
106 var prevParentID = ""; //前一行的评估小项的id号
107 var currentRowBigIndex = 0; //要合并的大项行组里第一行的下标
108 var bigRowspan = 1; //要rowspan的大项行数.
109
110 //小项的行下标/合并的行数
111 var currentRowSmallIndex = 0;
112 var smallRowspan = 1;
113
114 for (var i = 0; i < data.total; i++) {
115 var row = data.rows[i];
116 var wd_name = data.v_wd;
121
128 if (row.大项 == prevBigItem) {
129 //大项重合了 哈哈哈居然好啦
130
131 bigRowspan++;
132 $("#" + tableID).bootstrapTable('mergeCells', {
133 index: currentRowBigIndex,
134 field: '大项',
135 colspan: 1,
136 rowspan: bigRowspan
137 });
138
139
140 if (row.PARENTID == prevParentID) {
141 //小项重合了
142
143 smallRowspan++;
144
145 $("#" + tableID).bootstrapTable('mergeCells', {
146 index: currentRowSmallIndex,
147 field: '小项',
148 colspan: 1,
149 rowspan: smallRowspan
150 });
151
152 /*$("#" + tableID).bootstrapTable('mergeCells', {
153 index: currentRowSmallIndex,
154 field: '附件数量',
155 colspan: 1,
156 rowspan: smallRowspan
157 });*/
158
159 $("#" + tableID).bootstrapTable('mergeCells', {
160 index: currentRowSmallIndex,
161 field: '小项得分',
162 colspan: 1,
163 rowspan: smallRowspan
164 });
165 } else {
166 currentRowSmallIndex = parseInt(row.DISPID) - 1;
167 smallRowspan = 1;
168 }
169 } else {
170 currentRowBigIndex = parseInt(row.DISPID) - 1; //重置初始化.
171 bigRowspan = 1; //重置初始化.
172 currentRowSmallIndex = parseInt(row.DISPID) - 1;
173 smallRowspan = 1;
174 }
175
176
177 /*
178 构造bootstrap的开关按钮和下拉框
179 */
182 prevBigItem = row.大项;
183 prevSmallItem = row.小项;
184 prevParentID = row.PARENTID;
196 }
197
198 },
199 onRefresh: function () {
200 afterflash = 1;
201
202 },
203 onPostBody: function () {
204
205 }
206
207 });
208 }
$('#' + tableID)["0"].clientHeight,可以在bootstrap的表格成功生成后取得其高度,是为数不多的能取得表格的方法之一.
bootstrap table可以在初始化方法里,加入height属性:500(或1000),这样也能定下高度.不够会有留白,超出了会自动出现滚动条.
表格合并,这里采取是表格加载成功后,再给予'mergeCells'单元格合并.以当前大小项和parentid和上一个同指标相比较,如果相同,
currentRowBigIndex和bigRowspan都进行相应的变化,
就加以合并;否则,currentRowBigIndex和bigRowspan都给重置初始化.