Fonction de pagination ASP, navigation par pagination
Auteur:Eve Cole
Date de mise à jour:2009-06-26 18:09:37
code de programme
<%
'//Fonction de pagination
'//psize : Nombre de données affichées sur chaque page
'//pindex : numéro de la page actuelle
'//tbName : nom de la table
'//keyIndex : pagination selon quel champ, généralement de type auto-croissant (numérotation automatique de la base d'accès)
'//où :conditions de requête
'//order : conditions de tri, la valeur par défaut est "order by " &keyIndex &" desc"
'//Le nombre total d'enregistrements et le nombre total de pages peuvent être obtenus directement à partir de l'ensemble de résultats renvoyé. Le champ datacount stocke le nombre total d'enregistrements et le champ pagecount stocke le nombre total de pages.
pindex privé, nombre de données, pages
'compte de données = 0
'pages = 1
fonction publique changePage(psize,tbName,keyIndex,where,order)
chaîne dimsql
pindex = Trim(Request.QueryString("page"))
sinon isnumeric(psize) ou psize="" alors psize=1'//Le nombre de données affichées sur chaque page
sinon isnumeric(pindex) ou pindex="" alors pindex=1'//Numéro de page actuel
si order="" alors order=" commander par " & keyIndex & " desc"
'//Obtenir le nombre total de données
'dim datacount,pages
set rs=conn.execute("select count(*) as datacount from " & tbName & " où 1=1 " & où)
datacount = rs("datacount")'//Nombre total d'enregistrements
rs.fermer
définir rs = rien
'//Calculer le nombre total de pages
si (compte de données mod psize) = 0 alors
pages = nombre de données psize
autre
pages = nombre de données psize + 1
finir si
'//
si cint(pindex)>pages alors pindex=pages
'Épisser la chaîne SQL
si pindex<=1 alors
sqlstring="select top " & psize & " *," & datacount & " comme datacount," & pages & " comme nombre de pages de " &_
tbName & " où 1=1 " & où & " " & commande
autre
sqlstring="select top " & psize & " *," & datacount & " comme datacount," & pages & " comme nombre de pages de " &_
tbName & " où 1=1 et " & keyIndex & " not in(select top " & (pindex-1)*psize & " " & keyIndex & " from " &_
tbName & " où 1=1 " & où & " " & commande & ") " & où & " " & commande
finir si
'Réponse.Write(sqlstring)
définir changePage = conn.execute (sqlstring)
fonction de fin
'//Navigation des pages
'//fileName : nom du fichier/page actuelle, vous pouvez le laisser vide
'//argString : paramètres de pagination tels que classid=1&tid=16, la page de paramètres nécessaire à la pagination n'a pas besoin d'être remplie
'//pindex : numéro de la page actuelle
'//datacount : nombre total d'enregistrements
'//pages : nombre total de pages
'//showMsg : s'il faut afficher les informations de pagination, le paramètre est vrai/faux
'//showText : S'il faut afficher la navigation de la page d'accueil, de la page précédente, de la page suivante et de la dernière page, les paramètres sont vrai/faux
'//showNumber : s'il faut afficher la navigation par radiomessagerie numérique, le paramètre est vrai/faux
'fonction publique pageLink(fileName,argString,pindex,datacount,pages,showMsg,showText,showNumber)
fonction publique pageLink (fileName, argString, showMsg, showText, showNumber)
'//
si argString<>"" alors argString = argString & "&"
sinon showText et non showNumber alors showText=true
'//
si showMsg alors
Réponse.Write("[")
Response.Write("<span style='color:red;'>" & pindex & "</span> page")
Response.Write("/分<span style='color:red;'>" & pages & "</span> pages")
Response.Write("/Total<span style='color:red;'>" & datacount & "</span> records")
Réponse.Write("] ")
finir si
'//
si showText alors
si pindex>1 alors
Response.Write("<a href="" & fileName & "?" & argString & "page=1'>[Home]</a>")
Réponse.Write(" ")
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex - 1 & "'>[Page précédente]</a>")
autre
Réponse.Write("[Accueil]")
Réponse.Write(" ")
Réponse.Write("[Page précédente]")
finir si
Réponse.Write(" ")
si pindex<pages alors
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex + 1 & "'>[page suivante]</a>")
Réponse.Write(" ")
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pages & "'>[dernière page]</a>")
autre
Réponse.Write("[page suivante]")
Réponse.Write(" ")
Réponse.Write("[dernière page]")
finir si
finir si
'//
si showNumber alors
Réponse.Write(" ")
pour i = 4 à 1 pas -1
si (pindex - i)>0 alors
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex - i & "'>" & pindex - i & "</a>")
Réponse.Write(" ")
finir si
suivant
'//
Response.Write("<span style='color:red;'>" & pindex & "</span>")
'//
pour i = 1 à 4
si (pindex + i)<=pages alors
Réponse.Write(" ")
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex + i & "'>" & pindex + i & "</a>")
finir si
suivant
'//
finir si
'//
fonction de fin
%>