Faire un paging comme sur aspfr.com et vbfrance.com

Soyez le premier à donner votre avis sur cette source.

Vue 10 302 fois - Téléchargée 262 fois

Description

Il faut que vous ayez le fichier adovbs.inc qui est dans le zip.
Vous devez faire votre connexion à la base, puis mettez ce code dans votre page.
Modifié ce que vous avez à modifier genre MONCHAMP1, MONCHAMP2 etc...
et voilà, vous avez un paging comme dans les pages des catégories de ce site !

Source / Exemple :


<!--#include file="adovbs.inc"-->
<%
	Dim NumPageEnCours
	Dim TaillePage
	Dim MaxPages
	Dim MaxEnrgs
	Dim CombienDeRecs
	Dim MonObjRS
	
	NumPageEnCours = Request("quelpage")
	If NumPageEnCours = "" then NumPageEnCours = 1
	TaillePage = Request("taillepage")
	If  TaillePage = "" Then TaillePage = 16
	' Si vous souhaitez mettre vous même la taille maxi du nombre d'enregeistrement par page
	' mettez en commentaire les 2 lignes précédentes et mettez par ex : TaillePage = 16

	Set MonObjRS = Server.CreateObject("ADODB.Recordset")
	MonObjRS.cursorlocation = aduseclient
	MonObjRS.cachesize = 5

	MonObjRS.Open "VotreRequeteSQLIci", VotreConnexionAVotreBase

	MonObjRS.pagesize = TaillePage
	MaxPages = CInt(MonObjRS.pagecount)
	MaxEnrgs = CInt(MonObjRS.pagesize)
	If Not MonObjRS.EOF Then MonObjRS.absolutepage = NumPageEnCours
	CombienDeRecs = 0

	Do UNTIL MonObjRS.EOF OR CombienDeRecs >= MaxEnrgs
	
		'ICI Affichez Vos enregistrment dans cette boucle
		' Exemple :%>
		<%=MonObjRS("MONCHAMP1")%> <%=MonObjRS("MONCHAMP2")%><br>
		<%
		MonObjRS.MoveNext
		CombienDeRecs = CombienDeRecs + 1
	Loop
%>

<%Call PagingBar()%>

<%
Sub PagingBar()
    Dim StrHTML
    Dim PageEnCours
    Dim CompteurFin, CompteurDebut
    Dim i, LesVars
    
    If MaxPages <> 0 Then
        PageEnCours = Request.ServerVariables("script_name")
        Response.Write "<table rows=""1"" cols=""1"" width=""97%""><tr>"
        Response.Write "<td>"
        Response.Write "<font size=""2"" color=""#000000"" face=""Verdana, Arial,Helvetica, sans-serif"">"
        LesVars = ""
        For each Item In Request.Form
            If LCase(Item) <> "quelpage" And LCase(Item) <> "taillepage" Then
                LesVars = LesVars & "&" & LCase(Item) & "=" & server.URLencode(Request.Form(Item))
            End If
        Next
        For each Item In Request.QueryString
            If LCase(Item) <> "quelpage" And LCase(Item) <> "taillepage" Then
                LesVars = LesVars & "&" & LCase(Item) & "=" & server.URLencode(Request.QueryString(Item))
            End If
        Next
        If (NumPageEnCours mod 10) = 0 Then
            CompteurDebut = PageEnCours - 9
        Else
            CompteurDebut = NumPageEnCours - (NumPageEnCours mod 10) + 1
        End If

        CompteurFin = CompteurDebut + 9
        If CompteurFin > MaxPages Then CompteurFin = MaxPages
        If CompteurDebut <> 1 Then
            StrHTML = "<a href=""" & PageEnCours
            StrHTML = StrHTML & "?quelpage=" & 1
            StrHTML = StrHTML & "&taillepage=" & TaillePage
            StrHTML = StrHTML & LesVars
            StrHTML = StrHTML & """>Première page</a> : "
            Response.Write StrHTML
            StrHTML = "<a href=""" & PageEnCours
            StrHTML = StrHTML & "?quelpage=" & (CompteurDebut - 1)
            StrHTML = StrHTML & "&taillepage=" & TaillePage
            StrHTML = StrHTML & LesVars
            StrHTML = StrHTML & """>10 pages Précédente</a> <br>"
            Response.Write StrHTML
        End If
        Response.Write "["
        
        For i = CompteurDebut To CompteurFin
            If cstr(i) <> Cstr(NumPageEnCours) Then
                StrHTML = "<a href=""" & PageEnCours
                StrHTML = StrHTML & "?quelpage=" & i
                StrHTML = StrHTML & "&taillepage=" & TaillePage
                StrHTML = StrHTML & LesVars
                StrHTML = StrHTML & """>Page " & i & "</a>"
            Else
                StrHTML = "<b>Page " & i & "</b>"
            End If
            Response.Write StrHTML

            If i <> CompteurFin Then Response.Write " "
        Next
        Response.Write "]"

        If CompteurFin <> MaxPages Then
            StrHTML = "<br><a href=""" & PageEnCours
            StrHTML = StrHTML & "?quelpage=" & (CompteurFin + 1)
            StrHTML = StrHTML & "&taillepage=" & TaillePage
            StrHTML = StrHTML & LesVars
            StrHTML = StrHTML & """>10 pages Suivantes</a>"
            Response.Write StrHTML
            StrHTML = " : <a href=""" & PageEnCours
            StrHTML = StrHTML & "?quelpage=" & MaxPages
            StrHTML = StrHTML & "&taillepage=" & TaillePage
            StrHTML = StrHTML & LesVars
            StrHTML = StrHTML & """>Dernière page</a>"
            Response.Write StrHTML
        End If
        Response.Write "<br></font>"
        Response.Write "</td>"
        Response.Write "</table>"
    End If
End Sub
%>

Conclusion :


Mais vous pouvez encore ajouter des paramètres, modeler comme vous voulez etc...
C'est presque le même paging que sur le site à quelques petits détails près :)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
lundi 15 mars 2004
Statut
Membre
Dernière intervention
21 octobre 2008

(l 26) : CompteurDebut = NumPageEnCours - 9 et non CompteurDebut = PageEnCours - 9
Messages postés
436
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
2
monRecordset.PageSize = Le nombre de pages qu'on veux
monRecordset.CacheSize = Le nombre de pages qu'on veux
monRecordSet.PageCount retourne le nombre de pages qu'il ya / à monRecordSet.pagesize.

exemple :
NbEnrPages = 12
monRecordset.pagesize = nbEnrPages
monRecordset.Cachesize = nbEnrPages
'---------------------------------------------
S'il ya 40 enregistrements -->
Dim TotalPages
TotalPages = MonRecordset.pageCount
TotalPages sera = 4...

'---------------------------------------------
'Pour connaitre le numéro de page sur lequel on est :
Dim ActualPage.
If ActualPage "" then ActualPage 1
on peut dire :
'----------------------

If ActualPage > TotalPages Then ActualPage = TotalPages
If ActualPage < 1 Then ActualPage = 1
If TotalPages = 0 Then
Response.Write "<center>Il n'y as pas de réponse à votre requette</center>"
Else
monRecordset.AbsolutePage = ActualPage
'Le code qui affiche la page...
End If

'----------------------
If ActualPage > 1 Then
%>
[mapage.asp?page=<%= ActualPage - 1 %>&MesAutresParametres... [<< Précédent]]
<%
End If
Dim I
For I = 1 To TotalPages
If I = ActualPage Then
Response.Write I
Else
%>
[mapage.asp?page=<%= I %>&MesAutresParametres... <%= I %>]
<%
End If
Next 'I

If ActualPage < TotalPages Then
%>
[mapage.asp?page=<%= ActualPage + 1 %>&MesAutresParametres... [Suivant >>]]
<%
End If
'----------------------
Messages postés
141
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
5 juillet 2007

j'utilise le paging de Vbfrance et aspfr

j'ai un probleme : voici le message d'erreur :
"L'opération demandée par l'application n'est pas prise en charge par le fournisseur. "

La ligne ou ca bug est en rouge..
de koi ca peut venir ? merci !

voici mon script :

<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head>
</head>



<!--#include file="adovbs.inc"-->
<%
Dim NumPageEnCours
Dim TaillePage
Dim MaxPages
Dim MaxEnrgs
Dim CombienDeRecs
Dim MonObjRS

NumPageEnCours = Request("quelpage")
If NumPageEnCours "" Then NumPageEnCours 1
TaillePage = Request("taillepage")
If TaillePage "" Then TaillePage 16


'ouverture d'une connexion avec la base

set baselink=server.createobject("ADODB.connection")
baselink.open "Favorisodbc", "", ""

'creation de l'instruction sql

varsql= "SELECT * FROM adresse WHERE NumDom= " & request.querystring("dom")
varsql=varsql &" ORDER BY DateS DESC"

'creation du jeu d'enregistrement
set MonRecordadr=server.createobject("ADODB.recordset")
MonRecordadr.open varsql, baselink

MonRecordadr.pagesize = TaillePage
MaxPages = CInt(MonRecordadr.pagecount)
MaxEnrgs = CInt(MonRecordadr.pagesize)
[red]If Not MonRecordadr.EOF Then MonRecordadr.absolutepage = NumPageEnCours/red
CombienDeRecs = 0
%>

suite du scipt....[...]
Bon voila le truc :
il faut mettre :
If (NumPageEnCours mod 10) = 0 Then
CompteurDebut = NumPageEnCours - 9
Else
CompteurDebut = NumPageEnCours - (NumPageEnCours mod 10) + 1
End If


Au lieu de


If (NumPageEnCours mod 10) = 0 Then
CompteurDebut = PageEnCours - 9
Else
CompteurDebut = NumPageEnCours - (NumPageEnCours mod 10) + 1
End If
L'erreur décrite par yomguy arrive lorsque l'on demande une page multiple de 10...
Quelqu'un aurait trouvé une solution ?
Merci d'avance
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.