如何判断从数据库得出数据循环输出组成的表格的最后一行
循环输出表格的代码如下:
<%
 while (rs2.next()) {
 out.print("<tr><td align=center >"+rs2.getString("dt_name")+"</td><td><a href=depart_modify.jsp? dtid="+rs.getInt("dt_id") + ">编辑</a>  <a href=depart_del.jsp?dtid=" + rs.getInt("dt_id") + " >删除</a></td></tr>");
         }
%>
目的是只在最后一行有“删除”链接
该怎么办,巨谢!

解决方案 »

  1.   

    用js,获取最后一个tr,然后再获取最后一个td,然后innerHTML...
      

  2.   

    rs.isLast();
    这个不是可以吗?
      

  3.   

    如果性能要求不是很高,数据集打开方式不是TYPE_FORWARD_ONLY的话,可以用 isLast()out.print("<tr><td align=center >"+rs2.getString("dt_name")+"</td><td><a href=depart_modify.jsp? dtid="+rs.getInt("dt_id") + ">编辑</a>");
    if (rs2.isLast()) {
      out.print("<a href=depart_del.jsp?dtid=" + rs.getInt("dt_id") + " >删除</a>");
    }
    out.println("</td></tr>");
      

  4.   

    提示错误“只进结果集不支持请求的操作”,错误指向“if(rs2.siLast())”这一行。
      

  5.   


    说明你打开结果集的方式是 TYPE_FORWARD_ONLY,这种方式下不支持定位类操作。
    建议修改为:TYPE_SCROLL_INSENSITIVE,不过性能开销会比前面这种高。如果非常不希望修改打开结果集方式的话,就得自己去设置和跟踪标志了。
      

  6.   

    因为你没有预先把所有rs信息转为VO存入List中,变成是直接要操作数据集,限制就很大。
    如果不用JS的话,就手工控制输出顺序,比较烦:int lastId = -1;
    while (rs2.next()) {
      if (lastId>=0) out.println("</td></tr>"); // 结束TAG输出被前置化,避免最后一行需要追加“删除”
      out.print("<tr><td align=center >"+rs2.getString("dt_name")+"</td><td><a href=depart_modify.jsp? dtid="+rs.getInt("dt_id") + ">编辑</a>");
      lastId = rs.getInt("dt_id");
    }
    if (lastId >=0 ) { // 输出最后一行,以及结束TAG
      out.print("<a href=depart_del.jsp?dtid=" + lastId + " >删除</a></td></tr>");
    }