Pagination horizontale asp(jscript)-access complète

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 591 fois - Téléchargée 29 fois

Contenu du snippet

Bon, j'avai besoin d'ajouter une pagination dans une page Web. Le problème c'était que les

scripts sur le net propose soit pagination avec affichage verticale des records ou affichage

horizontale des données mais sans pagination.
J'ai téléchargé deux scripts italiens, un pour la pagination, un autre pour l'affichage

horizontale et un script espagnol. J'ai assemblé le tous, ainsi qu'introduire des modifications

et l'ajout des trucs pour que le script soît le plus complet possible.

Ce script permet de paginer (interfaçage) des records d'une base de données access dans une

table dont les records seront affichés horizontalement, nombre des records total, les records

affichés ex: images [1-9]sur un total de 30, des numéros et les termes "précédent" "suivant"

pour la navigation vers les records suivants et précédents, le record actuel n'est plus afiché

en tant que lien. En plus aller directement au premier ou dernier record. Les termes "suivant"

et "précédent" sont désactivés s'ils sont pas nécessaires alors que les termes "prmier" et

"dernier" ne sont activés que si on ai à 2 records premiers ou finals respectivement et ils ne seront plus du tout affichés si le nombre totale des pages et de 2 seulement.

Un effet de style onmouseover sur les cellules et la possiblité d'ouvrir un popup pour élargir

dedans une image par éxemple et finallement apparition d'infos bulle pour montrer le nom de l'image extrait de la database.

Dans notre éxemple, affichage en trois dans chaque ligne et neuf dans chaque page

Important: Si vous changez le nombre d'images que doit être affiché dans chaque page ou n'importe type de données dans:
Mostra.PageSize = 9; le même changement doît être effectué au niveau de l'expression:
while (!Mostra.EOF && i<9)

Ce code fonctionne parfaitement avec moi dans un e,vironnement:
Microsoft Internet Explorer 6 - Windows XP Professionnel Service Pack 2 - IIS 5 .

Bonne programmation

Farid
sidoummoudz@yahoo.fr

Source / Exemple :


<html>
 <head>
  <title></title>
  <script><!--
function newWindow_Preview(url, name, crtctrstsc){
window.open(url, name, crtctrstsc)
}
//--></script>
 </head>
<body>
<%@LANGUAGE = JScript%>
<%
  var Cn = new ActiveXObject("ADODB.Connection");
  var Sc = "driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("showRoom/base.mdb");
   Cn.Open(Sc); 
   var Sql = "SELECT * FROM url ORDER BY id ";
   var Mostra = new ActiveXObject("ADODB.Recordset");
   Mostra.Open(Sql,Cn, 1);
      var conta = 0;

   var pag = parseInt(Request.QueryString("id"));

       if (isNaN(pag) || pag < 1) pag = 1;
       if (!Mostra.EOF) {
            Mostra.PageSize = 9;
            Mostra.AbsolutePage = pag;
       }
   var i = 0;
   
 if (pag==1)
 inicio=1
else
 inicio=1+(pag-1)*Mostra.PageSize

fin=inicio+Mostra.PageSize-1
if (fin > Mostra.recordcount)
fin =Mostra.recordcount

%>

<p align="center"><font face="Tahoma"><span style="font-size:10pt;"><b>Galerie 
d'images</b></span></font></p>
<p><font face="Tahoma" size="2">Nombre d'images par page:<font color="#FF0000"><b>&nbsp;<%=Mostra.PageSize%> &nbsp;</b></font><b><font color="#FF0000">&nbsp;&nbsp;
</font><font color="#000000">-</font><font color="#FF0000">&nbsp;&nbsp;&nbsp; </font></b>Affichage
des images&nbsp;[<font color="red"><b><%=inicio%> - <%=fin%></font></b>]&nbsp;sur
un total de<font color="#FF0000">&nbsp;<b><%=Mostra.recordcount%>&nbsp;
&nbsp;&nbsp;</b></font>
 -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; page<font color="#FF0000"><b>&nbsp;<%=pag%>&nbsp;</b></font>sur<font color="#FF0000">&nbsp;<b><%=Mostra.PageCount%></b></font></p>
<table align="center" cellpadding="0" cellspacing="0" height="129" bgcolor="#C0C0C0">
<% while (!Mostra.EOF  && i<9)
{ 
i++
// Impostiamo la condizione secondo la quale se arriviamo a 3 record andremo a capo con </tr> e <tr>
        if (conta == 3) //Mettez ici le nombre d'enregistrement par ligne
        {
            conta = 0; // Resettiamo il contatore impostandolo su zero (0)
%>
                    <tr><td onmouseover="javascript:this.style.backgroundColor='gray'" onmouseout="javascript:this.style.backgroundColor=''" width="200" height="129"><p align="center"><a href="javascript:newWindow_Preview('showing.asp?imgID=<%=Mostra("id")%>','preview','scrollbars=yes, status=yes, height=300, width=500')" title="<%=Mostra("nom")%>"><%=Mostra("adresse")%></a></td>
<%
        }
        // altrimenti restiamo sulla stessa riga
        else
        {
%>
                    <td onmouseover="javascript:this.style.backgroundColor='gray'" onmouseout="javascript:this.style.backgroundColor=''" width="200" height="129"><p align="center"><a href="javascript:newWindow_Preview('showing.asp?imgID=<%=Mostra("id")%>','preview','scrollbars=yes, status=yes, height=300, width=500')" title="<%=Mostra("nom")%>"><%=Mostra("adresse")%></a></td>
<%
        }
        conta++; // Incrementiamo la variabile contatore
          Mostra.moveNext()   
        }
%>
 </tr>
</table>

<table border="0" width="100%">
  <tr>
    <td width="100%"></td>
  </tr>
</table>
<div align="center">
  <center>
<table width="412" height="1">
 <tr>
   <td width="183" height="1">
      <%if (pag > 2 && Mostra.PageCount > 2) {%><font face=tahoma size=2><a href="galerie.asp?id=<%=1%>">Premier</a><%}%>
      <%else if (Mostra.PageCount<=2) {%>&nbsp;&nbsp;<%}%>
      <%else {%><font face=tahoma size=2 color="#C0C0C0">Premier</font></font></font><font face="tahoma" size="2" color="#C0C0C0">&nbsp;&nbsp;
   </font><font face=tahoma size=2><font face="Tahoma" size="2">&nbsp;<%}%>
      <%if (pag > 1) {%>&nbsp;&nbsp;&nbsp;</font></font><font face="Tahoma" size="2"><font face=tahoma size=2><a href="galerie.asp?id=<%=pag - 1%>"><< Précédent</a><%}%>
      <%else {%><font face=tahoma size=2 color="#C0C0C0"><< Précédent<%}%>
      </font>
   </font>
   </font>
   </td>
   <td width="65" height="1"><p align="center"><%
      for (var i=0; i<Mostra.PageCount; i++)
      {
         if (pag == (i + 1))
         {
   %>
         <b><%=(i + 1)%></b>
   <%} else {%>
         <a href="galerie.asp?id=<%=(i + 1)%>"><%=(i + 1)%></a>
   <%
       }
      }
   %>
</p></td>
   <td width="189" align="right" height="1">
      <p align="center">
      <%if (!Mostra.EOF) {%><font face=tahoma size=2><a href="galerie.asp?id=<%=pag + 1%>">Suivant
      >></a><%}%>
      <%else {%><font color=#C0C0C0 face=tahoma size=2>Suivant >><%}%>
      <%if (!Mostra.EOF && pag < Mostra.PageCount-1) {%>&nbsp;&nbsp;<font face=tahoma size=2><a href="galerie.asp?id=<%=Mostra.PageCount%>">Dernier</a><%}%>
      <%else if (Mostra.PageCount<=2) {%>&nbsp;&nbsp;<%}%>
      <%else {%>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#C0C0C0 face=tahoma size=2>Dernier<%}%><font face=tahoma size=2>
      </font>
</td>
 </tr>
</table>
  </center>
  </div>
      <%Cn.Close()%>
</body>
</html>

A voir également

Ajouter un commentaire

Commentaires

cs_Yoyo2B
Messages postés
125
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
utilise plutôt

SELECT * FROM (select top 10 * from (select top 20 * FROM URL order by ID ASC) as Url1 order by ID DESC) as Url2 ORDER BY ID ASC

et ça évitera des boucles j'usqu'à NumEnCours Num paske si bcp record> c pas gangé !! surtout avec access !
cs_Yoyo2B
Messages postés
125
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
6 mars 2008
-
oups, c t pas fini :

si tu as une variable NbreSaut = 10 ki te donne le nombre de record suivants ou précédents à trouver,

tu remplace "select top 10" par "select top " & NbreSaut & "..." et 20 pas (2*NbreSaut)

et sur "précédent", tu fait
où x est le num en cours

Voilà, c peut-être pas trés clair, mais c plus simple en fait, et ça surcharge pas le serveur bdd.
Avec 10-500 renregistrements, ta méthode est valable, mais si tu en as plus , ça craint !!

happy coding ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.