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 :

Problème avec la pagination


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Par défaut Problème avec la pagination
    Bonjour à tous.

    Je suis un débutant en asp donc je vous prie d'excuser mon ignorance.

    J'ai lié une basse access qui contient 27 enregistrement et mon but était de faire des pages de 10 (ces juste un test pour l'instant)

    De plus j'ai le choix d'un critère de filtrage via une liste déroulante (num, division ou type article) et un champ text (ou on renseigne la valeur pour le filtrage).

    Mon problème est le suivant.
    Lorsque j'exécute mon formulaire avec un critère de filtrage, qui me retourne admettont 12 valeur, ben je vois les 10 premières sur ma première page (donc tout juste) mais lorsque je clique sur mes lien suivant, la requête semble complètement ré-exécutée sans critère (donc tout les valeurs se retrouve dans mon recordset) et en plus elle ne sont pas affichés.

    Une bonne âme pourraît-elle jetter un coup d'oeil à mon code et me dire ou est-ce que je fait faux?

    d'avance merci bcp.


    ----------------------------------------------------
    <%@ LANGUAGE="VBSCRIPT" %>

    <!--#include virtual="/asp/exemple/adovbs.inc"-->

    <html>

    <body>

    <%
    'Lecture de la base de donnée

    'définition du chemin et du nom de la base de données
    vPath = Server.MapPath("/") & "/asp/"
    vFilename = "articles.mdb"

    'Test si la base de donnée existe ou pas
    Dim FSO
    Set FSO = server.CreateObject("Scripting.fileSystemObject")
    IF FSO.FileExists(vPath & vFilename) then
    'Ouverture de la connexion à la base de données
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & vPath & vFilename
    Conn.Open
    'Recordset contenant le résultat de la requête
    set oObject = server.CreateObject("ADODB.Recordset")

    'Paramètre pour liens HTML
    dim strParam

    'Clause where
    strWhere = ""
    isValue = false
    ' Paramètre personnalisé "Param_01"
    If len(request.form("Param_01"))>0 and len(request.form("Param_01_value"))>0 Then
    If isValue Then
    strWhere = strWhere & " AND "
    Else
    strWhere = strWhere & " WHERE "
    End if
    isValue = true

    strTemp_01 = replace(Request.Form("Param_01_value"),"*","%")
    strWhere = strWhere & " " & Request.Form("Param_01") & " LIKE '" & strTemp_01 & "%'"
    strParam = strParam & "&Param_01=" & Request.Form("Param_01") & "&Param_01_value=" & Request.Form("Param_01_value")
    End if

    SQL = "Select * from article_sap" & strWhere
    response.write(sql)

    'PAGIN D'UN RECORDSET

    Dim NbElementParPage
    dim intPageCount
    Dim intRecordCount
    Dim Page
    Dim ref
    Dim intStart
    Dim intFinish

    'Initialisation du premier numéro de page
    page = request.queryString("num")

    ' response.write("le numéro de la page est ")
    ' response.write(page)

    'Ouverture du recordset
    oObject.CursorLocation = 3 'adUseClient
    oObject.Open sql, Conn, adOpenStatic, adLockReadOnly, adcmdText


    'Définition du nombre d'élément par page
    NbElementParPage = 10
    oObject.PageSize = NbElementParPage
    'oObject.CacheSize = oObject.PageSize
    oObject.CacheSize = 40

    intPageCount = oObject.pageCount
    intRecordCount = oObject.recordCount

    If CInt(page) > CInt(IntPageCount) Then
    page = IntPageCount
    End if

    If CInt(page) <= 0 Then
    page = 1
    End if 'ce pavé permet de définir quelle record doit être lu pour la page à affiché

    If IntRecordCount > 0 Then
    oObject.absolutepage = page
    intStart = oObject.AbsolutePosition

    If CInt(page) = cInt(intpageCount) Then
    intFinish = intRecordCount
    else
    intFinish = intStart + (oObject.PageSize - 1)
    End if
    End if
    %>

    <% 'Génération du paging %>

    <%
    dim valeur1
    If request.queryString("Param_01") <> "" Then
    valeur1 = request.queryString("Param_01")
    Else
    valeur1 = request.form("Param_01")
    End if
    dim valeur2
    If request.queryString("Param_01_value") <> "" Then
    valeur2 = request.queryString("Param_01_value")
    Else
    valeur2 = request.form("Param_01_value")
    End if

    %>
    <FORM name = "form1" method="post">
    <select name="Param_01" size="1">
    <option selected value="numero" <%=selectMenuWithConstant("numero",valeur1)%>>Numéro</option>
    <option value="division" <%=selectMenuWithConstant("division",valeur1)%>>Divsion</option>
    <option value="type" <%=selectMenuWithConstant("type",valeur1)%>>Type article</option>
    </select>

    <input name="Param_01_value" type="text" size="40" maxlength="30" value="<%=valeur2%>">
    <input type="submit" id="soumission" value="Soumettre">
    </form>
    <br>
    <br>
    <table width="100%" cellspacing="2" cellpadding="0" border="0">
    <tr>
    <td valign="top" align="left">
    <%=intRecordCount%> &nbsp; enregistrement(s)
    <% If intRecordCount > 0 AND cInt(intPageCount) > 1 then %>
    <% If cInt(page) > 1 Then %>
    <a href="?num=<%=page-1%><%=strParam%>">&lt;&lt; Précédent</a>&nbsp;
    <% End if %>
    <%For i = 1 to cInt(intPageCount) %>
    <% If i = Page Then %>
    <b><%=i%>&nbsp;</b>
    <% Else %>
    <a href="?num=<%=i%><%=strParam%>"><%=i%></a>
    <% End if %>
    <% Next %>
    <% If cInt(page) < cInt(intPageCount) Then %>
    <a href="?num=<%=page+1%><%=strParam%>">Suivant &gt;&gt;</a>&nbsp;
    <% End if %>
    <% End if %>
    &nbsp;
    </td>
    </tr>

    </table>

    <%
    'On affiche les éléments trouvés
    If not oObject.EOF Then
    %>
    <table width="100%" cellspacing="0" cellpadding="0" border="1" class="text">
    <tr>
    <td><b>Numéro</b></td>
    <td><b>Division</b></td>
    <td><b>Type article</b/><td>
    </tr>
    <%
    vTest = (oObject.AbsolutePage = page)
    cpt = 0
    Do while vTest
    cpt = cpt + 1
    %>
    <tr>

    <% If (cpt mod 2) <> 0 Then %>
    <td valign="top" align="left" bgcolor="#2199A8"><%=oObject("Numero")%></td>
    <td valign="top" align="left" bgcolor="#2199A8"><%=oObject("Division")%></td>
    <td valign="top" align="left" bgcolor="#2199A8"><%=oObject("Type")%></td>
    <% else %>
    <td valign="top" align="left"><%=oObject("Numero")%></td>
    <td valign="top" align="left"><%=oObject("Division")%></td>
    <td valign="top" align="left"><%=oObject("Type")%></td>
    <% end if %>
    </tr>

    <% oObject.movenext
    vTest = oObject.AbsolutePage = page
    loop
    %>
    </table>
    <% End if

    oObject.close : Set oObject=nothing
    conn.close : Set conn=nothing

    else
    response.write("Le fichier " & vPath & vFilename & " n'existe pas")
    end if
    set FSO = nothing

    %>

    <% 'Fonctions diverses
    Function selectMenuWithConstant(value, selectedValue)
    ' Response.Write fieldname & "<br>"
    ' Response.Flush
    If value=selectedValue Then
    selectMenuWithConstant = "selected"
    Else
    selectMenuWithConstant=""
    End If
    End Function

    %>
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    1 -
    2 - Il faudrait que tu passe des variables par tes URL "suivant". Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <% If cInt(page) < cInt(intPageCount) Then %> 
    <a href="mapage.asp?page=next">Suivant &gt;&gt;</a>&nbsp; 
    <% End if %>
    Ensuite il ne faut pas oublier que from => request.form et URL => request.querystring
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 57
    Par défaut
    Merci j'ai trouvé mon problème.
    J'envoyais bien mes paramètres mais je l'ai récupérais mal derrière.

    Ta remarque (Ensuite il ne faut pas oublier que from => request.form et URL => request.querystring) m'a mis la puce à l'oreille comme on dit.

    Merci beaucoup.

    Bonne journée

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Par défaut
    Bonjour;

    Citation Envoyé par Vlacar
    Merci j'ai trouvé mon problème.
    J'envoyais bien mes paramètres mais je l'ai récupérais mal derrière.
    Il aurait été bien d'indiquer la modification pour récupérer ces paramètres.

    Cordialement.

  5. #5
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    STP
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. Problème avec la pagination coté serveur
    Par devalender dans le forum MkFramework
    Réponses: 32
    Dernier message: 31/10/2014, 19h57
  2. [CakePHP] Problème avec le paginator
    Par Tybaal dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 28/07/2011, 14h29
  3. Problème avec la pagination
    Par oseqat dans le forum Ext JS / Sencha
    Réponses: 16
    Dernier message: 23/06/2011, 15h38
  4. [Système] Problème avec ma pagination.
    Par Peuplarchiste dans le forum Langage
    Réponses: 1
    Dernier message: 25/02/2008, 11h58
  5. [phpBB][2] Réalisation d'un système de pagination
    Par AlphonseBrown dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 26/10/2005, 11h26

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