从数据库得到一个数据集 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实现?

解决方案 »

  1.   


    你的合并指什么啊?把数据读出来,把A行合并成String类型?
      

  2.   

    数据类型不是问题,
    我是想把他合并成这样的
    -------------------
    | A | A1 | A11 |
    |   |    | A12 |
    |   |    | A13 |
    |   | A2 | A21 |
    |   |    | A22 |
    |   | A3 | A31 |
    |   |    | A32 |
    |   |    | A33 |
    -------------------
      

  3.   

    你的意思是什么啊,很难看明白啊,不过你要是合并数据,可以把数据添加到set里面,set是不会有重复数据的!
      

  4.   

    那不容易?
    A  A1  A11 把3列装成一个类就行了!然后在for循环中做判断啊,这样就可以出来了!
      

  5.   

    现在合并行已经解决了。
      但是要怎么合并列啊?
    例如
    A  A
    B  C
    我要怎样把这列相等的合并了?
    效果就是这样
      A
    B | C
    请高手帮帮忙。
      

  6.   

    我在网上搜的,用JS就可以了。不过,我不怎么懂JS
    我把代码复上:
    <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>