Páginas longas de artigos são exibidas com quebras de página. Quero usar ASP para implementar essa função, mas posso descobrir que só existe uma maneira de paginar com base no número de palavras. Mas esse método tem um bug, ou seja, se houver. é o código UBB no conteúdo do seu artigo, é muito fácil. Isso causa paginação entre [código][/código] ou simplesmente decompõe [código] em [co e de], causando erros na exibição do artigo.
As etapas a seguir tornarão isso possível.
Etapa 1:
Siga o sistema normal de artigos até o fim. A adição de artigos em segundo plano, a recuperação de artigos e as páginas de detalhes dos artigos são realizadas da maneira usual. Não há descrição aqui. Apenas ao adicionar um artigo, adicione uma quebra de página onde deseja que ele seja paginado: "|||" (Claro, você pode usar este símbolo casualmente, como: [página], &&&, ###, @@@ ... , desde que não apareça onde o artigo será exibido normalmente)
usei quatro páginas, a página de entrada (index.asp), a página de conclusão de entrada (add.asp), a página de lista de artigos (visualizar .asp), página de conteúdo do artigo (display.asp), as três primeiras são páginas que não precisam ser processadas. Olhando a imagem abaixo, acho que um pássaro comum pode fazer isso. todos os códigos para paginação estão aqui.
Etapa 2:
Faça alguns truques na parte de dados dinâmicos do corpo do artigo A seguir está o código e a explicação:
<%.
'Aqui precisamos processar os parâmetros de paginação recebidos para exibir o conteúdo de qual página
'As duas sentenças a seguir permitem que a variável pageNum assuma o valor da primeira página se nenhum parâmetro de página for passado: 0
If Request("página")="" Então
numPágina = 0
'Caso contrário, atribua o valor à variável como parâmetro na página passada para exibir outras páginas.
Outro
pageNum=Request("página")
Terminar se
%>
<%
'Se você adicionar código UBB de execução opcional, poderá adicionar o seguinte código
'rs("NoUBB") é um campo no banco de dados sobre desabilitação do UBB, 0 significa desabilitado, 1 significa executado
Se rs("NoUBB")=0 então
'Para evitar erros na conexão com o conteúdo do artigo, use a função Substituir para adicionar uma largura total antes e depois do código de paginação "|||"
'rs("content") é o campo de texto no banco de dados, adicione UBB aqui ou desative o UBB
Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
Caso contrário, rs("NoUBB")=1 então
Conteúdo=Substituir((ubb(rs("conteúdo"))),"|||"," ||| ")
Terminar se
%>
<%
'Aqui está a chave
'Usamos a função split para extrair o artigo em seções e armazená-los na variável content
ContentStr=split(Conteúdo,"|||")
'De acordo com a variável que será exibida obtida apenas do parâmetro URL, a página será exibida em um loop
Para i=pageNum para pageNum
%>
<!--Este será o texto do artigo-->
<%=ContentStr %>
<% Próximo %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">Este artigo está dividido em
<%
'Na área de paginação, use ubound(ContentStr) para obter em quantas páginas o artigo está dividido. Observe que começa em 0, portanto, o número total de páginas precisa ser adicionado por 1.
Para p = 0 para ubound(ContentStr)
'O link ainda é esta página, mas um parâmetro de paginação é adicionado após o parâmetro de ID do artigo: página
%>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% Próxima %> página
É muito simples. Se você deletar todos os comentários, serão apenas 15 linhas de código, mas ainda precisa ser processado para que possa ter as funções de destacar a página anterior, a próxima e a página atual. .
Foi testado, a menos que a quebra de página apareça no artigo, todos os tipos não darão errado. Claro, você pode aumentar o número de |||, por exemplo: |||||| e depois seis "|". ou menos aparecem no artigo. Está tudo bem, mas se houver mais de seis, basta escolher uma boa quebra de página.