Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/11/2007, 03h27   #1
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Par défaut problem pagination overflow

Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
<%
Nmax = 10 ' nombre par page
Ndeb = Cint(request.queryString("num"))
 
' nombre total de fiches
SQL="SELECT count(*) FROM [fichiers]"
RS2 = conn.execute(SQL)
Ntotal = RS2(0) - 1 ' commence à 0
 
' sélectionne les fiches de la table
Set RS = server.createobject("ADODB.Recordset")
SQL="SELECT TOP " & (Ndeb+Nmax)_
& " * FROM [fichiers]"
RS.Open SQL,Conn , 3, 3
 
' Avance à la 1ère
RS.Move(Ndeb)
' tant qu'il reste des fiches
while not RS.eof
' affiche le champ
response.write RS("cat_titre") & "<br>"
' fiche suivante
RS.MOVENEXT
wend%>
 
<br>
 
<table cellpadding=3><tr>
<% ' NAVIGATION
' Des fiches avant ?
if Ndeb > 0 then%>
<td>
<A href="?num=0">Début</A>
<A href="?num=<%=Ndeb-Nmax%>">Retour</A>
</td>
<%end if%>
<td>
<% ' Page courante
Npag = int(Ndeb/Nmax)+1 : Npag2 = Npag-1
tmp = "<b>" & Npag & "</b>"
' Max 9 pages avant
while Npag2>0 AND Npag2>Npag-10
tmp = "<A href='?num=" & ((Npag2-1)*Nmax)_
& "'>" & Npag2 & "</A> " & tmp
Npag2 = Npag2-1
wend
' Max 9 pages après
Npag2 = Npag
while Npag2*Nmax<=Ntotal AND Npag2<Npag+9
Npag2 = Npag2+1
tmp = tmp & " <A href='?num=" & ((Npag2-1)*Nmax)_
& "'>" & Npag2 & "</A>"
wend
response.write tmp
%>
</td>
<% ' Des fiches après ?
if Ntotal>Ndeb+Nmax then%>
<td>
<A href="?num=<%=Ndeb+Nmax%>">Suite</A>
<A href="?num=<%=int(Ntotal/10)*10%>">Fin</A>
 
</td>
<%end if
 
RS.close : set RS=nothing%>
</tr></table>
 
</BODY></HTML>
<% conn.close : Set conn=nothing %>
Bonjour
j'ai fait ce code et il m'as donné comme erreur "overflow"
normalement il doit afficher juste 10 enregistrements mais il affcihe tout et lorsque je click sur page 2 3 ou bien suite il me donne cette erreur.
Merci
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 18h16   #2
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Coucou, personne a me repondre ?
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 22h33   #3
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Salut,

Tu devrais refaire une recherche sur la pagination sur le forum ou google car la methode que tu emplois n'est pas la bonne.
Il y a en effet des propriétés et methodes specifiques pour gérer ce besoin.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 22h51   #4
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Salut,

T'as sorti l'artillerie lourde pour pas grand chose ...

http://msdn2.microsoft.com/fr-fr/library/bb469836.aspx
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 22h59   #5
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
J'ai pas trouvé la partie 2...
Par contre voici un script que tu peux copier coller:
Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
 
<body>
<%
Dim strSQL
 
Const adOpenKeyset = 1
 
Set objConnection = Server.CreateObject("ADODB.Connection")
OBJConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\<CHEMIN>\<MABASE>.mdb;Persist Security Info=False"
 
Set objRecordset = Server.CreateObject("ADODB.Recordset")
objRecordset.PageSize = 20
objRecordset.Open "SELECT * FROM MATABLE", 1, 3
 
dim i, PageNum
i = 0
 
IF request.QueryString("PageNum") <> "" THEN
	IF objRecordset.AbsolutePage <= objRecordset.pagecount THEN
		objRecordset.AbsolutePage = request.QueryString("PageNum")
		PageNum = request.QueryString("PageNum")
	END IF
ELSE
	PageNum = 1
END IF
 
IF NOT objRecordset.EOF AND NOT objRecordset.BOF THEN
	while not objRecordset.EOF AND i<= objRecordset.PageSize
		response.Write(objRecordset("Client_Name") & "&nbsp;" & objRecordset("Client_Code") &"<br>")
		i=i+1
		objRecordset.MoveNext
	wend
ELSE
	response.Write("Pas d'enregistrements")
END IF
response.Write("You are page " & PageNum & " of " & objRecordset.Pagecount & "<br>")
If cint(PageNum) > 1 Then
	response.Write("<a href='Untitled-2.asp?Direction=Prev&PageNum=" & PageNum - 1 & "'>Enregistrements précédents</a>&nbsp;")
End If
If cint(PageNum) < objRecordset.Pagecount Then
	response.Write("<a href='Untitled-2.asp?Direction=Next&PageNum=" & PageNum + 1 & "'>Enregistrements suivants</a>")
End If
 
objRecordset.Close
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
%> 
</body>
</html>
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2007, 22h42   #6
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Merci Immobilis pour le code, ca marche tres bien j'ai meme ajouté qlq trucs comme fin debut et je les ai affichés en meme temps comme ca :
Début Présédent page 2 de 5 Suivant Fin
je veux ajouter une class a ces liens mais je ne sais pas ou je la mettre et est ce qu'on peut modifier ce code pour afficher tout les pages par exemple pages <lien>1</lien><lien>2</lien>... et en cliquant sur un numero on pas a la page correspendante. Je vais essayer de le faire aussi.
Merci
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 04h46   #7
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Bonjour
voila ce que j'ai pu faire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<%
If cint(PageNum) > 1 Then%>
<a href="voircommandes.asp?date=hier&Direction=Debut&PageNum=1" class="foot">Début</a>&nbsp;
<a href="voircommandes.asp?date=hier&Direction=Prev&PageNum=<%=PageNum-1%>" class="foot">Précédent</a>&nbsp;
<%
End If
for i=1 to rs.pagecount
if i=PageNum then
response.Write(i)
else
%>
<a href="voircommandes.asp?date=hier&Direction=Page&PageNum=<%=i%>"><%=i%></a>
<%
end if
next
If cint(PageNum) < rs.Pagecount Then
%>
<a href="voircommandes.asp?date=hier&Direction=Next&PageNum=<%=PageNum+1%>" class="foot">Suivant</a>&nbsp;
<a href="voircommandes.asp?date=hier&Direction=Fin&PageNum=<%=rs.Pagecount%>" class="foot">Fin</a>
<%
End If
%>
ca marche les lien sur les 1 2 3... mais je ne suis pas satisfait, en fait j'ai testé le i pour ne pas mettre le lien sur le numero de page active mais ca marchait pas, ca marchait juste avec la premire page,1 mais les autres non.
j'attend tjrs vos reponses
j'ai une question: est ce qu'on peut ecrire n'importe quoi avec le response.write(" ") parce que des fois je trouve des difficultés avec, j'ai pas pu ecrite...

Code :
1
2
3
 
<a href="voircommandes.asp?date=hier&Direction=Page&PageNum=<%=i%>"><%=i%></a>
<a href="voircommandes.asp?date=hier&Direction=Prev&PageNum=<%=PageNum-1%>" class="foot">Précédent</a>&nbsp;
pour la deuxieme probleme ou je mets class
Merci D'avance
A+
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 19h44   #8
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Bonsoir répondez moi svp
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 21h33   #9
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Salut,
Citation:
Envoyé par debutantasp Voir le message
ca marche les lien sur les 1 2 3... mais je ne suis pas satisfait, en fait j'ai testé le i pour ne pas mettre le lien sur le numero de page active mais ca marchait pas, ca marchait juste avec la premire page,1 mais les autres non.
Je ne comprend pas ce que tu veux dire...
Citation:
Envoyé par debutantasp Voir le message
j'attend tjrs vos reponses
Ben oui, mais que cela ne t'empeche pas de reflechir et te documenter.
Citation:
Envoyé par debutantasp Voir le message
j'ai une question: est ce qu'on peut ecrire n'importe quoi avec le response.write(" ")
Oui

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 21h57   #10
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Citation:
Envoyé par Immobilis Voir le message
ca marche les lien sur les 1 2 3... mais je ne suis pas satisfait, en fait j'ai testé le i pour ne pas mettre le lien sur le numero de page active mais ca marchait pas, ca marchait juste avec la premire page,1 mais les autres non.
A+
je vais vous donner un exemple, la pagination sur google il affiche le nombre des pages 1 2 3 4 5 et chaque numero a son lien sauf la page courante ce n'est pas la peine de l'en mettre.
c'est ce que je veux faire et je l'ai fait, mais j'ai fait les lien sur tt les pages meme la page courante. Je veux tester de ne pas faire le lien sur la page courante.
Et pour le response.write(" ") vous pouvez me traduire ca :
Code :
1
2
3
4
 
<a href="voircommandes.asp?date=hier&Direction=Debut&PageNum=1" class="foot">Début</a>&nbsp;
<a href="voircommandes.asp?date=hier&Direction=Prev&PageNum=<%=PageNum-1%>" class="foot">Précédent</a>&nbsp;
<%
Merci
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 23h00   #11
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Code :
1
2
Response.Write"<a href=""voircommandes.asp?date=hier&Direction=Debut&PageNum=1"" class=""foot"">Début</a>&nbsp;" & _
"<a href=""voircommandes.asp?date=hier&Direction=Prev&PageNum=" & PageNum-1 & """ class=""foot"">Précédent</a>&nbsp;"
Il faut doubler les guillement pour n'en faire qu'un ou bien mettre une apostrophe.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 04h35   #12
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Merci C'est Noté
J'attend tjrs que vous compreniez sur ce truc des liens, voila je vais te montrer. Par exemple on fait une recherche qui affiche 7 pages et nous sommes sur la 2ème page la pagination va se montrer comme ca, toutes les pages avec de liens sauf la deux parce que c'est la page courante.
Page de résultats: Précédent 1 2 3 4 5 6 7 Suivant

excusez mon français, ce n'est pas ma langue maternelle
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 08h26   #13
Membre expérimenté
 
Inscription : octobre 2004
Messages : 516
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2004
Messages : 516
Points : 508
Points : 508
Envoyer un message via MSN à TekP@f
Ajoute un CINT dans ta condition, c'est peut-être ça qui pose problème.

Code :
1
2
3
4
5
6
7
8
9
10
 
 
<%
if i=CInt(PageNum) then
response.Write(i)
else
%>
<a href="voircommandes.asp?date=hier&Direction=Page&PageNum=<%=i%>"><%=i%></a>
<%
end if
TekP@f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 04h20   #14
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Par défaut Résoulu

Salut,
Je viens d'essayer le code, ca marche tres bien.
Merci TekP@f
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 09h53   #15
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Bonjour
j'ouvre une autre fois ce poste, si j'ai par exemple 100 pages je vais pas bien sur les afficher toutes a la fois ca va faire un flood sur la page.
Comment je peux afficher 10 pages par 10 pages par exemple?
Merci
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 21h05   #16
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Le nb d'enregistrements est determiné par "objRecordset.PageSize". Si tu regardes le code que je t'ai donné plus haut il est à 20.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 21h30   #17
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
Salut,
Oui je sais rs.pagesize que je fais c'est pour le nombre d'enregistrements affichés sur une page, moi je parle de nombre de page affiché et pas nombre d'enregistrements.
Merci
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 21h48   #18
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
ok, on s'est mal compris.
Citation:
Envoyé par debutantasp Voir le message
un flood
?
Qu'est-ce que tu veux dire? Ca plante?
Si c'est par ce que la barre de navigation risque d'être trop grande, voici un bout de code qui permet d'eviter le pb:
Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
	Sub ShowNavBar(rst)
		Dim iPageCount
		Dim iLoop
		Dim sScriptName
		sScriptName = Request.ServerVariables("SCRIPT_NAME")
		iPageCount = rst.PageCount
 
		Response.Write("<BR><table>" + Chr(13) + Chr(10))
		Response.Write("<tr align='center'>" + Chr(13) + Chr(10))
		Response.Write("<td width='100' align='center'>")
		If iPageNum > 1 Then
			Response.Write "<a class='n' href=" & sScriptName & "?iPageNum=" & (iPageNum -1) & "><< Previous</a> "
			IF iPageNum > 10 THEN
				Response.Write "<a class='n' href=" & sScriptName & "?iPageNum=" & (iPageNum -10) & ">-10</a>"
			END IF
		Else
			Response.Write "&nbsp;"
		End If
		Response.Write("</td>" + Chr(13) + Chr(10))
		Response.Write("<td width='200' align='center'>")
 
		Do Until iLoop > iPageCount
			If iLoop = iPageNum Then
				Response.Write " <B>" & CStr(iLoop) & "</B>"
			ELSE
				IF iLoop =< 3 THEN
					Response.Write " <a class='n' href=" & sScriptName & "?iPageNum=" & Cstr(iLoop) & ">" & iLoop & "</a>"
				ELSE
					IF iLoop >= iPageCount - 2 THEN
						Response.Write " <a class='n' href=" & sScriptName & "?iPageNum=" & Cstr(iLoop) & ">" & iLoop & "</a>"
					ELSE
						IF iLoop < iPageNum - 2 OR iLoop > iPageNum + 2 THEN
							IF  iLoop = iPageNum - 3 OR iLoop = iPageNum + 3 THEN
								Response.Write " ... "
							END IF
						ELSE
							Response.Write " <a class='n' href=" & sScriptName & "?iPageNum=" & Cstr(iLoop) & ">" & iLoop & "</a>"
						END IF
 
					END IF				
				END IF
			End If
			iLoop = iLoop + 1
		Loop
		Response.Write("</td>" + Chr(13) + Chr(10))
		Response.Write("<td width='100' align='center'>")
		If iPageNum < iPageCount Then
			IF iPageNum <= iPageCount - 10 THEN
				Response.Write "<a class='n' href=" & sScriptName & "?iPageNum=" & (iPageNum + 10) & ">+10</a>"
			END IF
			Response.Write " <a class='n' href=" & sScriptName & "?iPageNum=" & (iPageNum +1) & "> Next >></a>"
		Else
			Response.Write "&nbsp;"
		End If
		Response.Write("</td>" + Chr(13) + Chr(10))
		Response.Write("</tr>" + Chr(13) + Chr(10))
		Response.Write("</table><BR>" + Chr(13) + Chr(10))
		'Response.Write "Page " & iPageNum & " of " & iPageCount & "<BR>" + Chr(13) + Chr(10)
		Response.Write rst.RecordCount & " Records" + Chr(13) + Chr(10)
	End Sub
Je te laisse le regarder.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 22h06   #19
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
je voulais dire ca va etre comme ca :
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 29 30 31 34 35 36 37 38 39 40 41 42 ............ suivant dernière
tu vois je veux qu'il affiche par exemple au debut 1 2 3 4 5 6 7 8 9 10 lorsqu'une personne clique sur la page 10 il 'affiche les autre pages par exemple de 20 a 29.
je ne sais pas comment faire des miniatures pour te montrer mais si tu vois la pagination du forum tu vas voir ca Page 1 sur 97 1 2 3 4 5 11 51 > Dernière »
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 22h09   #20
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Ben etudie le code que je viens de mettre. C'est une procedure à laquelle il faut fournir le recordset.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h17.


 
 
 
 
Partenaires

Hébergement Web