Les pages d'articles longues sont affichées avec des sauts de page. Je souhaite utiliser ASP pour implémenter cette fonction, mais je peux constater qu'il n'existe qu'un moyen de paginer en fonction du nombre de mots. Mais cette méthode a un bug, c'est-à-dire s'il y en a. est le code UBB dans le contenu de votre article, c'est très simple. Cela provoque une pagination entre [code][/code], ou décompose simplement [code] en [co et de], provoquant des erreurs dans l'affichage de l'article.
Les étapes suivantes rendront cela possible.
Étape 1 :
Suivez le système d'articles normal jusqu'au bout. L'ajout d'articles en arrière-plan, la récupération d'articles et les pages de détails des articles s'effectuent de la manière habituelle. Il n'y a pas de description ici. Juste au moment d'ajouter un article, ajoutez un saut de page à l'endroit où vous souhaitez qu'il soit paginé : "|||" (Bien sûr, vous pouvez utiliser ce symbole avec désinvolture, comme : [page], &&&, ###, @@@ ... , tant qu'il n'apparaît pas là où l'article doit être affiché normalement)
J'ai utilisé quatre pages, la page de saisie (index.asp), la page de complétion de saisie (add.asp), la page de liste d'articles (view .asp), Page de contenu de l'article (display.asp), les trois premières pages n'ont pas besoin d'être traitées. En regardant l'image ci-dessous, je pense qu'un oiseau ordinaire peut le faire. tous les codes de pagination sont ici.
Étape 2 :
effectuez quelques astuces dans la partie données dynamiques du corps de l'article. Voici le code et l'explication :
<%
'Ici, nous devons traiter les paramètres de pagination reçus pour afficher le contenu de quelle page
'Les deux phrases suivantes permettent à la variable pageNum de prendre la valeur de la première page si aucun paramètre de page n'est passé : 0
Si Request("page")="" Alors
numéro de page = 0
'Sinon, attribuez la valeur à la variable comme paramètre dans la page passée pour afficher d'autres pages.
Autre
pageNum=Requête("page")
Terminer si
%>
<%
'Si vous ajoutez du code UBB d'exécution facultatif, vous pouvez ajouter le code suivant
'rs("NoUBB") est un champ dans la base de données concernant la désactivation de l'UBB, 0 signifie désactivé, 1 signifie exécuté
Si rs("NoUBB")=0 alors
'Afin d'éviter les erreurs de connexion avec le contenu de l'article, utilisez la fonction Remplacer pour ajouter une pleine largeur avant et après le code de pagination "|||"
'rs("content") est le champ de texte dans la base de données, ajoutez UBB ici ou désactivez UBB
Contenu=Remplacer((unHTML(rs("content"))),"|||"," ||| ")
Sinon, si rs("NoUBB")=1 alors
Contenu=Remplacer((ubb(rs("content"))),"|||"," ||| ")
Terminer si
%>
<%
'Voici la clé
'Nous utilisons la fonction split pour extraire l'article en sections et les stocker dans la variable content
ContentStr=split(Contenu,"|||")
'Selon la variable à afficher qui vient d'être obtenue du paramètre URL, la page sera affichée en boucle
Pour i=pageNum à pageNum
%>
<!--Ceci sera le texte de l'article-->
<%=ContentStr %>
<% Suivant %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">Cet article est divisé en
<%
'Dans la zone de pagination, utilisez ubound(ContentStr) pour obtenir le nombre de pages en lesquelles l'article est divisé. Notez qu'il commence à 0, le nombre total de pages doit donc être ajouté de 1.
Pour p = 0 à ubound(ContentStr)
'Le lien est toujours cette page, mais un paramètre de pagination est ajouté après le paramètre ID d'article : page
%>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
Page <% Suivant %>
C'est très simple. Si vous supprimez tous les commentaires, ce ne sera que 15 lignes de code. Mais il reste encore à le traiter pour qu'il puisse avoir les fonctions de mise en évidence de la page précédente, de la page suivante et de la page actuelle. Ce sera parfait. .
Cela a été testé. À moins que le saut de page n'apparaisse dans l'article, tous les types ne se tromperont pas. Bien sûr, vous pouvez augmenter le nombre de |||, par exemple : ||||||, puis six "|". ou moins apparaissent dans l'article. Tout va bien, mais s'il y en a plus de six, il sera divisé en pages.