将记录集分N行显示,每行显示M个

将符合条件的记录读取出来保存于一个记录集中,然后分N行显示,每行显示M个记录,以前我总是这么写:

<table>
<%
Dim i,j
i=1
For j=1 to 30
    If i mod 6=1 then
        Response.write "<tr><td>aaa</td>"
    Elseif i mod 6=0 then
        Response.write "<td>aaa</td></tr>"
    Else
        Response.write "<td>aaa</td>"
    End if
    i = i + 1
Next
If (i-1) mod 6 <>0 then response.write "</tr>"
%>
</table>


后来觉得还可以简单一点:

<table>
<tr>
<%
Dim i,j
i=1
For j=1 to 30
    If i mod 6=0 then
        Response.write "<td>aaa</td></tr><tr>"
    Else
        Response.write "<td>aaa</td>"
    End if
    i = i + 1
Next
If (i-1) mod 6 <>0 then response.write "</tr>"
%>
</table>


这样看似简单了,当最终的j不是6的倍数时是正常的,但当它是6的倍数时则会多出一个<tr>,这几天在修改其他人的程序,看到了一个类似的例子,也犯了同样的错误:

<table>
<tr>
<%
Dim i,j
i=1
For j=1 to 30
    Response.write "<td>aaa</td>"
    If i mod 6 = 0 then response.write "</tr><tr>"
    i = i + 1
Next
If (i-1) mod 6 <>0 then response.write "</tr>"
%>
</table>


上边都是一行一行的输出,下边介绍的是一列一列的输出:

<table width="300">
<tr>
<%
Dim i,j
i=1
for j=1 to 30
    If i mod 6 = 1 then
        Response.write "<td width=""20%"" valign=""top""><table width=""100%""><tr><td>aaa</td></tr>"
    Elseif i mod 6 = 0 then
        Response.write "<tr><td>aaa</td></tr></table></td>"
    Else
        Response.write "<tr><td>aaa</td></tr>"
    End if
    i = i + 1
Next
If (i-1) mod 6 <>0 then response.write "</table></td>"
%>
</tr>
</table>


评论: 0 | 引用: 0 | 查看次数: 8697
发表评论
登录后再发表评论!