Merge cells
by Daniel Brose
HTML
<link rel="stylesheet" href="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.css">
<script src="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.js"></script>
<div class="main">
<table id="table" data-toggle="table" data-height="200">
<thead>
<tr>
<th data-field="id">NAME</th>
<th data-field="name">VALUE</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>1</td>
</tr>
<tr>
<td>A</td>
<td>2</td>
</tr>
<tr>
<td>B</td>
<td>1</td>
</tr>
<tr>
<td>B</td>
<td>2</td>
</tr>
</tbody>
</table>
</div>
JavaScript
$(function () {
var table = document.getElementById('table');
var rowLength = table.rows.length;
var count = 0;
var row = table.rows[1].cells[0].innerHTML;
var saveIndex = 0;
console.log(rowLength, row);
for (var i = 1; i < rowLength; i++) {
if (row === table.rows[i].cells[0].innerHTML) {
console.log('yes, ' + i + ', ' + saveIndex + ', ' + count + ', ' + table.rows[i].cells[0].innerHTML + ', ' + row);
count++;
if(i == rowLength - 1)
{
console.log('last entry, ' + i + ', ' + saveIndex + ', ' + count + ', ' + table.rows[i].cells[0].innerHTML + ', ' + row);
mergeRows(saveIndex, count);
}
} else {
mergeRows(saveIndex, count);
row = table.rows[i].cells[0].innerHTML;
saveIndex = i - 1;
count = 1;
console.log('no, ' + i + ', ' + saveIndex + ', ' + count + ', ' + table.rows[i].cells[0].innerHTML + ', ' + row);
/*
*/
}
}
});
function mergeRows(index, rowspan) {
console.log('merging,', index + ',', rowspan);
$('#table').bootstrapTable('mergeCells', {
index: index,
field: 'id',
rowspan: rowspan
});
}