从数据库查询出数据要求分级显示在表格中。请教如何动态拆分单元格。显示结果:一行中,3个单元格,第一个只有一行(A级数据),第二个单元格在第一个的基础上拆分为n行(数据为A的下一级,n为该级的个数,假设有A1,A2);第三个单元格在第二个的基础上拆分(A1这一行在第三个单元格中对应N行,N为A1下一级的个数。同样,A2在第三个单元格中对行的行数为A2的下级个数。)
效果图如下:
----------------------------------------———
| | A11
| |——————————
| A1 | A12
| |——————————
A | | A13
|————————|——————————
| | A21
| A2 |——————————
| | A22
———————————————————————
备注说明:嵌套表格可以实现这种结构,但是无法使用界面的框架。显示效果不符合要求。
求教详细解决方案。
效果图如下:
----------------------------------------———
| | A11
| |——————————
| A1 | A12
| |——————————
A | | A13
|————————|——————————
| | A21
| A2 |——————————
| | A22
———————————————————————
备注说明:嵌套表格可以实现这种结构,但是无法使用界面的框架。显示效果不符合要求。
求教详细解决方案。
可以么??
我的解决方法:
可以考虑逆向生成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>");
}
else的时候就不需要rowspan了
[email protected]