Un difficile problème


Endal
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 20 Aoû 2005

Un difficile problème

Message le Jeu Aoû 25, 2005 9:19

Hello all ,

Pour séparer pages, j'ai écrit un fragment du code comme ci-dessous :

<%
...........

set rs=Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
rs.PageSize=30

cPage=Request.QueryString("iPage")
if cPage="" OR Not IsNumeric(cPage) then cPage=1 End if
rs.Open sql, conn, 0,3
totalRecords=rs.RecordCount
if totalRecords>0 then
rs.AbsolutePage=cPage
No=1
Do Until No>rs.PageSize OR rs.EOF
%>


L'exposition des teneurs selon conditions ici

<%
if totalRecords/7 >1 then

queryString="Visitors.asp?ClassID="&session.sessionID&"&ViewType="&session("ViewType")

Dim sNo, eNo, Segment, StrLink

totalPages=totalRecords\7
if totalRecords mod 7 > 0 then totalPages=totalPages+1 end if

Segment=cPage\7
if cPage mod 7 > 0 then Segment=Segment+1 end if

sNo=Segment*7-6

eNo=Segment*7

if Segment*7>totalPages then eNo=totalPages end if

strLink=""

if Segment>1 then
strLink=strLink&"<a href='"&queryString &"&iPage="&(Segment-1)*7&"' onclick='doLoad()'> Previous</a>&nbsp;"
end if

For No=sNo to eNo
if No=cInt(cPage) then
strLink=strLink&"&nbsp;"& No & "&nbsp;"
else
strLink=strLink&"&nbsp;<a href='"&queryString&"&iPage="&No&"' onclick='doLoad()'><u>"&No&"</u></a>&nbsp;"
end if
Next

if totalPages>Segment*7 then
strLink=strLink&"&nbsp;<a href='"&queryString&"&iPage="&(Segment*7)+1&"' onclick='doLoad()'>Next</a>"
end if
Response.Write(strLink)
end if
%>


Les résultats semblent être très excellents :

Image

Et au bas de la page :


Image

Pauvre! Le problème se trouve dans les liens de pages . Il y a plus de 7 pages de resultats, mais il n'y a que 6 pages qui contient de la donnée !
Voilà , c'est le 7 è page :

Image

Les pages par la suite qui sont même état !

Savez - vous où est mon erreur ? Indiquez-moi , s'il vous plait .
Je vous remercie par avance .

iconso
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 446
Inscription: 8 Avr 2003

Message le Ven Aoû 26, 2005 8:27

J'ai regardé brièvement ton code, sans trop m'y attarder. Ton erreur vient sans doute soit d'un mauvais calcul du eNo, soit de ta boucle FOR qui se fait une fois de trop (For No=sNo to eNo) : selon la méthode dont ton eNo est calculé, tu devras peut-être utiliser un "For No=sNo to eNo-1"

Fred


Endal
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 12
Inscription: 20 Aoû 2005

Message le Ven Aoû 26, 2005 11:57

iconso, merci bien ;

Je suis sur que sNo ( startNumero) et eNo (endNumero) - je préfère nommer des variables suivant cet habitude - qui n'ont pas de problème

C'est ce code qui a été utilisé sur quelques autres pages et a donné bons resultats .

Mais dans ce page , je voudrais que chaque page contient 30 fields : rs.PageSize=30

Alors, voilà mon erreur :

totalPages=totalRecords\
7
if totalRecords mod 7 > 0 then totalPages=totalPages+1


Je l'ai changé en :


totalPages=totalRecords\30
if totalRecords mod 30 > 0 then totalPages=totalPages+1



Maintenant, l'affaire est réglée ! Mais quoi qu'il en soit, plus d'un fois, je te remercie de ton enthousiasme.


----------------


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités