打破经典的ASP页面

时间:2011-12-07 02:58:35

标签: javascript sql asp-classic

我正在开发一个从SQL数据库获取数据的网页。我想要打破记录,以便当它到达第三行时,它将分解到另一页。 我有一个javacript,以便它打破页面。但是,此记录显示在表格中。而且我不知道如何放入代码中。有什么建议吗? 感谢。

<style>div.break {page-break-before:always}</style>

Sub DisplayRecords()
    Do until registerRS.eof
        counter=counter+1
        if counter=41 then
            counter=0
            counter=counter+1
        end if
        r = r + 1
        If r = 1 then
            Response.write "<tr>"
        End if
        %>
    <td>
    <%=registerRS.Fields("SchoolId")%> <br />
    Class: <%=registerRS.Fields("class")%><br />
    </td>   
        <%
        If r = 2 then
            Response.write "</tr>"
        End if

        If r = 3 then r = 1
        registerRS.movenext
    loop
    registerRS.close
    set registerRS=nothing 
End sub

1 个答案:

答案 0 :(得分:2)

您应该能够将该样式应用于表格行。从查看你的代码我假设你想要每行显示3条记录,每三行都有一个分页符。如果是这样,您可以执行以下操作:

<强> CSS

tr.break {page-break-before:always;}

<强> ASP

Sub DisplayRecords()
    rowCount = 0
    Do until registerRS.eof
    counter=counter+1
    if counter=41 then
    counter=0
    counter=counter+1
    end if
    r = r + 1
    If r = 1 then
       if rowCount < 3 then
          Response.write "<tr>"
          rowCount = rowCount + 1
       else
          Response.write "<tr class='break'>"
          rowCount = 0
    End if
    %>
<td>
<%=registerRS.Fields("SchoolId")%> <br />
Class: <%=registerRS.Fields("class")%><br />                    
</td>         


    <%
    If r = 2 then
            Response.write "</tr>"
        End if

        If r = 3 then r = 1
    registerRS.movenext
    loop
    registerRS.close
    set registerRS=nothing 
    End sub
    %>

This fiddle显示了正在运行的代码。打印this page以查看分页符。

<强>然而

最优雅的方法是使用CSS3 nth Child Selector。缺点是缺乏旧浏览器和IE浏览器的支持。

你会使用类似的东西:

tr:nth-child(3n +4) {page-break-before:always;}
/*3n says select every third row with + 4 being the row to start from*/

查看this fiddle并打印预览this one