从数据库得到一个数据集 Resultset rs
这个数据集输出的结果是:
A A1 A11
A A1 A12
A A1 A13
A A2 A21
A A2 A22
A A3 A31
A A3 A32
A A3 A33
这样一张表,我要将每一列相同的数据都合并了,也就是 A 行合并,再 A1 行合并,再 A2 行合并,再 A3 行合并。
请各位大侠帮帮忙,要怎么用JSP实现?
这个数据集输出的结果是:
A A1 A11
A A1 A12
A A1 A13
A A2 A21
A A2 A22
A A3 A31
A A3 A32
A A3 A33
这样一张表,我要将每一列相同的数据都合并了,也就是 A 行合并,再 A1 行合并,再 A2 行合并,再 A3 行合并。
请各位大侠帮帮忙,要怎么用JSP实现?
你的合并指什么啊?把数据读出来,把A行合并成String类型?
我是想把他合并成这样的
-------------------
| A | A1 | A11 |
| | | A12 |
| | | A13 |
| | A2 | A21 |
| | | A22 |
| | A3 | A31 |
| | | A32 |
| | | A33 |
-------------------
A A1 A11 把3列装成一个类就行了!然后在for循环中做判断啊,这样就可以出来了!
但是要怎么合并列啊?
例如
A A
B C
我要怎样把这列相等的合并了?
效果就是这样
A
B | C
请高手帮帮忙。
我把代码复上:
<script language="JavaScript">
function uniteTableRow(thistab,colLength){
var rn=thistab.rows.length;//取得行数
var rowspann=0;
for(j=colLength-1;j>=0;j--){//从第0列开始,合并多少列
for(i=rn-1;i>0;i--){//从倒数第一行开始往上检查
if(thistab.rows[i].cells[j].innerText==thistab.rows[i-1].cells[j].innerText&&thistab.rows[i].cells[j].colSpan==thistab.rows[i-1].cells[j].colSpan){//与上面一行比较,如果两行相等就合计当前行的合并行数,并删除当前行。
rowspann+=thistab.rows[i].cells[j].rowSpan;
thistab.rows[i].deleteCell(j);
}else{
thistab.rows[i].cells[j].rowSpan+=rowspann;//如果不等就完成当前相同数据的合并。
rowspann=0;
}
}
//检测无表头的表
if(i==0&&rowspann>0){
thistab.rows[i].cells[j].rowSpan+=rowspann;//如果不等就完成当前相同数据的合并。
rowspann=0;
} }
} uniteTableRow(document.all.table1,3);//执行测试。
</script>