从数据库查询出数据要求分级显示在表格中。请教如何动态拆分单元格。显示结果:一行中,3个单元格,第一个只有一行(A级数据),第二个单元格在第一个的基础上拆分为n行(数据为A的下一级,n为该级的个数,假设有A1,A2);第三个单元格在第二个的基础上拆分(A1这一行在第三个单元格中对应N行,N为A1下一级的个数。同样,A2在第三个单元格中对行的行数为A2的下级个数。)
效果图如下:
----------------------------------------———
       |                |            A11
       |                |——————————
       |       A1       |            A12
       |                |—————————— 
  A    |                |            A13
       |————————|——————————
       |                |            A21
       |       A2       |——————————            
       |                |            A22
———————————————————————
备注说明:嵌套表格可以实现这种结构,但是无法使用界面的框架。显示效果不符合要求。
求教详细解决方案。

解决方案 »

  1.   

    动态拆分单元格?一开始就把所有的数据查出来,然后根据具体情况生成html代码,无非就是加rowspan,
    可以么??
      

  2.   

    先用dreamweaver静态设计成你想要的东西,再考虑如何动态实现
      

  3.   

    这个不是技术问题,而是智力问题了,呵呵
    我的解决方法:
    可以考虑逆向生成html,即从后向前生成html,加n-1个计数器(n=字段个数),当某个字段值改变时,其后面的(除最后一列)所有列按计数器加rowspan=cnti,之后这些计数器全部置为0
    程序架构:
    StringBuffer s1=new StringBuffer();
    s1.append("</table>");
    rs.last();
    while(rs.previous()){
      s1.insert("</td>");
      for(int i=colnum-1;i>0;i--){
        colinew=rs.getString(i);
        if(colinew!=coliold){
          s1.insert("<td rowspan="+cnti+">"+colinew+"</td>");
          coliold=colinew;
          cnti=0;
        }
        else{
          s1.insert("<td rowspan="+cnti+">"+colinew+"</td>");
          cnti++;
        }
      }
      s1.insert("<td>");
    }
      

  4.   

    粘贴错误,哈哈
    else的时候就不需要rowspan了
      

  5.   

    联系我,给你完美解决方案~
    [email protected]