日期:2014-05-18  浏览次数:20612 次

跪教jsp分行显示问题?

数据表:
部门           人员
开发部       小a
开发部       小b
开发部       小c
开发部       小d
开发部       小e
办公室       大a
办公室       大b
办公室       大c
.                 .
.                 .
.                 .


效果页面显示为

开发部
小a     小b     小c
小d     小e  
办化室
大a   大b     大c

每部门
每行显示三条


------解决方案--------------------
while(rs.next()){
out.println( "tr ");
int i;
for(i=0; i <3&&rs.next(); i++)
out.println( " <td> "+rs.getString(2)+ " </td> ");

out.println( " </tr> ");
}
------解决方案--------------------
int i=1;
while(rs.next()){
if(i==1) { printf( " <br> ");
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) printf( " </br> ");
continue;
}

if(i==2) {
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) printf( " </br> ");
continue;
}
if(i==3) { i=1;
out.println( " <td> "+rs.getString(2)+ " </td> </br> ");
}
}

试试看~~~~~ -_-

如果不行的话再试试:

Statement stm = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

int i=1;
while(rs.next()){
if(i==1) { printf( " <br> ");
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) { printf( " </br> "); rs.previous();}
else rs.previous();
continue;
}

if(i==2) {
out.println( " <td> "+rs.getString(2)+ " </td> ");
i++;
if(!rs.next()) { printf( " </br> "); rs.previous();}
else rs.previous();
continue;
}
if(i==3) { i=1;
out.println( " <td> "+rs.getString(2)+ " </td> </br> ");
}
}


------解决方案--------------------
楼主,人家给出的大概思路,你也不要一定能运行正确,思路对了你大概调试一下很快就出来了。

我也给出一方案

private static int MAX_COL=3;

....

int iNow =0;
while(rs.next()){
if((iNow %MAX_COL )==0){
if(iNow> 0){
out.println( " </tr> ")
}
out.println( " <tr> <td> " + getString(2) + " </td> ")
}else{
out.println( " <td> " + getString(2) + " </td> ")
}