IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

[ASP] Améliorer la pagination (première page, dernière page)


Sujet :

ASP

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [ASP] Améliorer la pagination (première page, dernière page)
    Bonjour le forum,

    J'ai actuellement du code de pagination qui me permet de naviguer entre mes différentes pages.

    Je peux donc aller d'une page à l'autre.

    Par facilitée, j'aurais aimé avoir la possibilité d'aller à la première page et à la dernière page.

    J'aurais aussi voulu faire 1-2-3-4-5 (pour 5 pages) et pouvoir aller directement à la page 4 quand je suis par exemple à la page 2.

    Voici le code que j'utilise pour la pagination, il fonctionne très bien mais pourraît être améliorer :

    La première partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select Case Request.QueryString("Direction") 
    Case "" 
    Session("CurrentPage") = 1 
    Case "Next" 
    Session("CurrentPage") = Session("CurrentPage") + 1 
    Case "Prev" 
    Session("CurrentPage") = Session("CurrentPage") - 1 
    End Select
    La seconde partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim nbrepage
    rst.PageSize = 30 
    rst.AbsolutePage = CLng(Session("CurrentPage")) 
    nbrepage = rst.pagecount
    La troisième partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <%If CLng(Session("CurrentPage")) > 1 Then %>
             <a href="page.asp?Direction=Prev"><img src="gauche.jpg" alt="Page pr&eacute;c&eacute;dente" width="29" height="26" border="0" />
             <% End If %>
           </a>
             <%If CLng(Session("CurrentPage")) < rst.Pagecount Then %>
             <a href="page.asp?Direction=Next"><img src="droite.jpg" alt="Page suivante" width="29" height="26" border="0" /></a><a href="page.asp?Direction=Next">
             <% End If %>
    Vous pensez que c'est possible de faire cela à partir de ce code ?

    Merci d'avance pour votre aide.

    bgs

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    recupérer via http le numéro de page voulu en reprenant ta façon de faire(variable de session) ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    dim numPage : numPage  = Request("numPage ")
    if numPage  <>"" then
        Session("CurrentPage") = Cint(numPage)
    else 
         Select Case Request.QueryString("Direction") 
            Case "" 
                Session("CurrentPage") = 1 
            Case "Next" 
                Session("CurrentPage") = Session("CurrentPage") + 1 
            Case "Prev" 
                 Session("CurrentPage") = Session("CurrentPage") - 1 
         End Select
    End if
    Puis plus bas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <%If CLng(Session("CurrentPage")) > 1 Then %> 
             <a href="page.asp?Direction=Prev"><img src="gauche.jpg" alt="Page pr&eacute;c&eacute;dente" width="29" height="26" border="0" /> 
             <% End If %> 
           </a> 
            <% dim j
                   FOR j=1 to nbrepage %>
                      <a href="page.asp?numPage=<%=j%>"><%=j%><%
                      <%if j<>nbrepage then Response.write("&nbsp;-&nbsp;")
                      %></a>
                   <%NEXT
              %>     
             <%If CLng(Session("CurrentPage")) < rst.Pagecount Then %> 
             <a href="page.asp?Direction=Next"><img src="droite.jpg" alt="Page suivante" width="29" height="26" border="0" /></a><a href="page.asp?Direction=Next"> 
             <% End If %>

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour amar00,

    Merci pour ton aide.

    J'ai appliqué ce que tu as écris mais j'ai quelque soucis.

    Voici la première partie de mon code (avec tes rectifications) :

    <%
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim numPage : numPage  = Request("numPage ")
    if numPage  <>"" then
        Session("CurrentPage") = Cint(numPage)
    else 
    Select Case Request.QueryString("Direction") 
    Case "" 
    Session("CurrentPage") = 1 
    Case "Next" 
    Session("CurrentPage") = Session("CurrentPage") + 1 
    Case "Prev" 
    Session("CurrentPage") = Session("CurrentPage") - 1 
    End Select
    et la seconde partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <%If CLng(Session("CurrentPage")) > 1 Then %>
             <a href="page.asp?Direction=Prev"><img src="gauche.jpg" alt="Page pr&eacute;c&eacute;dente" width="29" height="26" border="0" />
             <% End If %>
     
    		 <% dim j
                   FOR j=1 to nbrepage %>
                      <a href="page.asp?numPage=<%=j%>"><%=j%><%
                      <%if j<>nbrepage then Response.write("&nbsp;-&nbsp;")
                      %></a>
                   <%NEXT
              %>  
     
    <%If CLng(Session("CurrentPage")) < rst.Pagecount Then %>
             <a href="page.asp?Direction=Next"><img src="droite.jpg" alt="Page suivante" width="29" height="26" border="0" /></a><a href="page.asp?Direction=Next">
             <% End If %>
    J'obtiens ce message d'erreur :

    Erreur de compilation Microsoft VBScript erreur '800a0400'

    Instruction attendue

    /serveur/page.asp, ligne 104

    <%if j<>nbrepage then Response.write("&nbsp;-&nbsp;")

    La ligne 103 et 104 correspondent à ceci :

    '103
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.asp?numPage=<%=j%>"><%=j%><%
    '104
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <% if j<>nbrepage then Response.write("&nbsp;-&nbsp;")
    Je présûme que c'est un <% de trop.

    Quand je l'envlève, j'ai ce message d'erreur :
    Erreur de compilation Microsoft VBScript erreur '800a03f6'

    'End' attendu

    /serveur/page.asp, ligne 170
    La ligne 170 correspond à ceci :

    Ce message d'erreur est moin "parlant", qu'en penses-tu ?

    Merci encore pour ton aide.

    bgs

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    c'est bien un <% de trop
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <%If CLng(Session("CurrentPage")) > 1 Then %> 
             <a href="page.asp?Direction=Prev"><img src="gauche.jpg" alt="Page pr&eacute;c&eacute;dente" width="29" height="26" border="0" /> 
             <% End If %> 
           </a> 
            <% dim j 
                   FOR j=1 to nbrepage %> 
                      <a href="page.asp?numPage=<%=j%>"><%=j%><% 
                      if j<>nbrepage then Response.write("&nbsp;-&nbsp;") 
                      %></a> 
                   <%NEXT 
              %>      
             <%If CLng(Session("CurrentPage")) < rst.Pagecount Then %> 
             <a href="page.asp?Direction=Next"><img src="droite.jpg" alt="Page suivante" width="29" height="26" border="0" /></a><a href="page.asp?Direction=Next"> 
             <% End If %>

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Resalut,

    Le problème est qu'en corrigeant le <%, le message d'erreur

    End attendu
    reste (voir message précédent stp).


    Qu'en penses-tu ?

    Merci
    bgs

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    <%If CLng(Session("CurrentPage")) > 1 Then %>
    <a href="page.asp?Direction=Prev"><img src="gauche.jpg" alt="Page pr&eacute;c&eacute;dente" width="29" height="26" border="0" />
    <% End If %>
    </a>
    <% dim j
    FOR j=1 to nbrepage %>
    <a href="page.asp?numPage=<%=j%>"><%=j%><%
    if j<>nbrepage then
    Response.write("&nbsp;-&nbsp;")
    end if
    %></a>
    <%NEXT
    %>
    <%If CLng(Session("CurrentPage")) < rst.Pagecount Then %>
    <a href="page.asp?Direction=Next"><img src="droite.jpg" alt="Page suivante" width="29" height="26" border="0" /></a><a href="page.asp?Direction=Next">
    <% End If %>

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Il manquait un end if au début.

    Maintenant je vois 1 2 3 4 5 avec les tirets.

    Par contre quand je clique sur un des numéros, rien ne change excepté l'adresse :

    http://IP/Serveur/page.asp?numPage=3
    mais ça reste avec les valeurs de la première page.

    Tu crois qu'on peut arrangé cela ?

    Merci pour ton aide.

    bgs

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    il faut bien vérifier que tu fais
    Session("CurrentPage") = Request("numPage")
    avant d'écrire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rst.AbsolutePage = CLng(Session("CurrentPage"))

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Resalut,

    Il me semble avoir fait comme tu as dit mais c'est toujours pareil.

    Voici le code complet (du début) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <% 
    'Ce code permet de naviguer entre les différentes pages de consultation.
    dim numPage : numPage  = Request("numPage ")
    if numPage  <>"" then
        Session("CurrentPage") = Cint(numPage)
    else 
    Select Case Request.QueryString("Direction") 
    Case "" 
    Session("CurrentPage") = 1 
    Case "Next" 
    Session("CurrentPage") = Session("CurrentPage") + 1 
    Case "Prev" 
    Session("CurrentPage") = Session("CurrentPage") - 1 
    End Select 
    End if
     
    dim cnn 
    dim nbrepage
    Set cnn = Server.CreateObject("ADODB.Connection") 
    cnn.Open "delibes" 
    Dim strSQL 
    strSQL = strSQL & "SELECT * FROM [BA1]" 
    Set rst = Server.CreateObject("ADODB.Recordset")
    rst.PageSize = 30 
    rst.Open strSQL, cnn, 3, 3 
    rst.AbsolutePage = CLng(Session("CurrentPage")) 
    nbrepage = rst.pagecount
    %>
    Merci pour tout.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    il y a un espace en trop
    remplacerpar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Request("numPage")

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    En plein dans le mille

    Je suis super étonné qu'un simple espace peut perturbé le tout

    Sache que sans toi je n'y serais sans doute pas arriver.

    Je te remercie mille fois et je te souhaîte un bon Week-end.

    bgs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/07/2012, 19h10
  2. Réponses: 2
    Dernier message: 05/09/2006, 17h39
  3. [XSL-FO] Afficher sur la dernière page seulement !!
    Par Rumeurs dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 31/01/2006, 21h05
  4. [Rave] Cacher une bande a la dernière page
    Par fateh1970 dans le forum Rave
    Réponses: 5
    Dernier message: 31/03/2004, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo