Перерыв на классической странице ASP - PullRequest
0 голосов
/ 07 декабря 2011

Я работаю над веб-страницей, где он получает свои данные из базы данных 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 Ответ

2 голосов
/ 07 декабря 2011

Вы должны быть в состоянии применить этот стиль к строке таблицы.Глядя на ваш код, я предполагаю, что вы хотите отобразить 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
    %>

Этоскрипка показывает код в действии.Напечатайте эту страницу , чтобы увидеть разрыв страницы в действии.

Однако

Самый элегантный способ сделать это - использовать 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*/

См. эту скрипку и предварительный просмотр этоодин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...