Tableau limiter en asp

Signaler
Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011
-
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
-
bonjour
je developpe une base de donneé CIndoc avec une interface asp !!
Les reponses de mes requetes sont inserées ds un tableaux ( html ); je voudrais limiter l affiche du tableau a 10 reponses et la suite des resultats accessible en clikant sur "suivant" ( a la maniere dune boite mail )!!! Le tt afin de ne pas avoir 10 km de page a defiler !!!
je vous remercie

> MaEl <

9 réponses

Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

> MaEl <
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
eh bien ça dépend de la façon dont tu insère les données dans le tableau html

(tu pourrais nous montrer un petit bout de code ?)



Je suppose que tu utilises une boucle pour afficher ligne par ligne les résultats des requêtes de ta BD.

Dans ce cas tu fais un "break", tu termines le tableau html et tu met
un lien "suivant" quand le nombre d'enregistrement atteint un certain
nombre. Le lien pointe sur lui-même avec un query-string
"id=le_numero_de_la_page" et avant la boucle tu test si id existe, si
oui tu affiche la page correspondante.



c'est assez basic mais ça donne une idée de départ !


Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

Merci pr l info jy vois un peu + clair ms bon......reste a voir limplementation du code . voici un bout de code de ma page asp :


if ok="on" Then
isql =" select Désign,Série,Fourn,Agent from SIPANNE_BINDERS where Fourn='*' NOT Fourn=''"
RS.Open isql,session ("dbconn") %>


<table width = "100%">


<tr>


<th width="2%" bgcolor=#993333> </th>


<th width="20%" bgcolor=#993333> Désignation </th>


<th width="20%" bgcolor=#993333> Série </th>


<th width = "18%" bgcolor=#993333> Fournisseur </th>


<th width = "20%" bgcolor=#993333> Agent </th>


</tr>


<%


if not RS.EOF then


RS.MoveFirst


do while not RS.EOF%>


<tr>
<td valign="middle" align="center" bgcolor=#FFCC00>[Fiche_mat.asp?mat=<%=Rs( " ] </td>


<td bgcolor=#FFCC00> <%=RS("Désign")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Série")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Fourn")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Agent")%> </td>


</tr>
<%
RS.MoveNext
Loop
End if
end if
Set RS=nothing
%>

> MaEl <
Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

Merci pr l info jy vois un peu + clair ms bon......reste a voir limplementation du code . voici un bout de code de ma page asp :


if ok="on" Then
isql =" select Désign,Série,Fourn,Agent from SIPANNE_BINDERS where Fourn='*' NOT Fourn=''"
RS.Open isql,session ("dbconn") %>


<table width = "100%">


<tr>


<th width="2%" bgcolor=#993333> </th>


<th width="20%" bgcolor=#993333> Désignation </th>


<th width="20%" bgcolor=#993333> Série </th>


<th width = "18%" bgcolor=#993333> Fournisseur </th>


<th width = "20%" bgcolor=#993333> Agent </th>


</tr>


<%


if not RS.EOF then


RS.MoveFirst


do while not RS.EOF%>


<tr>
<td valign="middle" align="center" bgcolor=#FFCC00>[Fiche_mat.asp?mat=<%=Rs( " ] </td>


<td bgcolor=#FFCC00> <%=RS("Désign")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Série")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Fourn")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Agent")%> </td>


</tr>
<%
RS.MoveNext
Loop
End if
end if
Set RS=nothing
%>

> MaEl <
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
eh bien tu fais un truc dans ce genre là :



'en haut de la page un truc dans ce genre là

Dim page 'la page en cours

Dim Nbenregist = 11 ' nombre d'enregistrement par pages + 1

If Request.QueryString("page") <> "" Then

page = Request.QueryString("page")

Else

page = 1

End If


'tu transforme ta boucle "do while" en boucle "For" :

Dim i = 1

For i To Nbenregist

If Rs.EOF = True Then Exit For

If page = 1 Then

Rs.MoveFist

Else

Rs.Move ((page*Nbenregist) - Nbenregist - (page - 2)) 'affichage des bons enregistrement



'tout le traitement sur l'enregistrement en cours

Rs.MoveNext

Next

'et à la fin tu rajoute des liens dans ce genre là :

%>

[cettepage.asp?page=<%=page + 1 %> Page Suivante]



en gros c'est ça. ça fait que la 1ère page affiche les enregistrements de 1 à 10, la 2e de 11 à 20, ...etc



(pour le RS.Move suivit d'un chiffre, je sais que certaines BD ne l'aiment pas trop...)


Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
une petite erreur :

C'est For i To (NBenregist - 1)



(j'avais oublié le - 1 )


Nurgle
C'est une grande folie que de vouloir être sage tout seul !
Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

> MaEl <
Messages postés
108
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

salut eh bein g tester ms ca ne marche pas, peut etre ais je omis une instruction ms jai suivi pas a pas t conseil ms en vain :
(l integraliter du code ) (sachant que la page en cours sappel fiche_fourn.asp):


<%@ LANGUAGE="VBScript"%>


<%Response.buffer=false%>


<HTML>


<HEAD>


<TITLE>Fiche</TITLE>


</HEAD>




<!--#include file="normes.inc"-->


<%


Dim fiche_fourn.asp
Dim Nb=11

if Resquest.QueryString("fiche_fourn.asp")<>"" Then
fiche_fourn.asp = Resquest.QueryString("fiche_fourn.asp")
Else
fiche_fourn.asp = 1
end if


ok = Request.Form("ok")


Fourn= Request.Form("Fourn")


if Fourn="" then


Response.Write "Sélectionnez un fournisseur"


Response.End


end if


set RS =Server.CreateObject("ADODB.Recordset") '=== BINDERS


RS.CursorLocation = adUseClient


RS.LockType = adLockReadOnly


if ok="on" Then


isql =" select Désign,Série,Fourn,Agent from SIPANNE_BINDERS where Fourn='*' NOT Fourn=''"


RS.Open isql,session ("dbconn") %>


<table width = "100%">


<tr>


<th width="2%" bgcolor=#993333> </th>


<th width="20%" bgcolor=#993333> Désignation </th>


<th width="20%" bgcolor=#993333> Série </th>


<th width = "18%" bgcolor=#993333> Fournisseur </th>


<th width = "20%" bgcolor=#993333> Agent </th>


</tr>


<%


if not RS.EOF then




Dim i =1


For i to (nb -1 )


if RS.EOF= True Then Exit For


if fiche_fourn.asp=1 Then


RS.MoveFirst


else


RS.Move (( fiche_fourn.asp*nb) - nb - (fiche_fourn.asp - 2 ))


%>


<tr>


<td valign="middle" align="center" bgcolor=#FFCC00>[Fiche_mat.asp?mat=<%=Rs( " ] </td>


<td bgcolor=#FFCC00> <%=RS("Désign")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Série")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Fourn")%> </td>


<td valign="middle" align="center" bgcolor="#FFCC00"> <%=RS("Agent")%> </td>


</tr>


<%


RS.MoveNext


Next
End if
end if
end if
end if
Set RS=nothing
%>
" >page suivante

> MaEl <
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
c'est très précis le "ça marche pas" !!

Tu as quoi exactement ? une erreur ?



En fait je pense que c'est le "RS.Move" qui ne va pas. cette commande
ne marche pas avec toutes les DB, en tout cas je sais qu'elle marche
avec SQLServer, et qu'elle marche pas avec Access...)



je vais voir mais ça va être plus dur sans...

Nurgle
C'est une grande folie que de vouloir être sage tout seul !