Dans cette fiche...

<Retour ASP>

Début de page Principe

Une petite amélioration du listing précédent : toutes les informations de la table tblSites sont affichées et mises en forme dans un tableau HTML.

Le tableau peut être créé au préalable "à vide" dans un éditeur HTML quelconque. Par exemple :

Nom du site

WebMaster

URL
Catégorie Langue DateEnreg Note
Description

Début de page Listing de la page ASP

Le listing est un peu indigeste à cause de la multitude de balises HTML !

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

<HEAD>
<TITLE>Exemple</TITLE>
</HEAD>

<BODY>
<%
	dim objConnect
	dim objRecordset

	set objConnect = Server.CreateObject("ADODB.Connection")
	objConnect.Open "WebDB"
	set objRecordset = Server.CreateObject("ADODB.Recordset")
	strSQL = "SELECT * FROM [rqt Sites+Catégorie] ORDER BY DateEnreg DESC;"
	objRecordset.Open strSQL, objConnect
%>

<P><FONT FACE="Verdana" COLOR="#004080"><BIG><BIG><STRONG>
Liste des sites
</STRONG></BIG></BIG></FONT></P>
<FONT FACE="Verdana" SIZE="3">
Voici la liste des sites, par ordre chronologique...
</FONT>

<P>
<FONT FACE="Verdana" SIZE="2">
<%
	Do While not objRecordset.eof
%>

<!-- Un site -->
<DIV ALIGN="center"><CENTER>

<TABLE border="0" width="80%" cellspacing="1" cellpadding="2">
  <tr>
    <td width="50%" colspan="2" bgcolor="#004080"><img src="icoTriangleRouge.gif"
    width="10" height="10"> <font color="#FFFFFF"><strong>
    <%=objRecordset("NomSite")%>
    </strong></font></td>

    <td width="50%" colspan="2" bgcolor="#ECECF4"><p align="right">
    <% if objRecordset("WebMaster") <> "" then 
	Response.Write("WebMaster : " & objRecordset("WebMaster"))
       end if
    %>
    </td>

  </tr>
  <tr>
    <td width="100%" colspan="4" bgcolor="#ECECF4"><%=objRecordset("URL")%></td>
  </tr>

  <tr>
    <td width="25%" bgcolor="#ECECF4" align="center">
    <%=objRecordset("Catégorie")%>
    </td>
    <td width="25%" bgcolor="#ECECF4" align="center">
    <%=objRecordset("Langue")%>
    </td>

    <td width="25%" bgcolor="#ECECF4" align="center">
    <%=objRecordset("DateEnreg")%>
    </td>

    <td width="25%" bgcolor="#ECECF4" align="center">
    <%=objRecordset("Note")%>
    </td>
  </tr>

  <tr>
    <td width="100%" colspan="4" bgcolor="#D5EAFF"><font color="#000000">
	<% if Isnull(objRecordset("Description")) then
		Response.Write("&nbsp;")
	   else
		Response.Write(objRecordset("Description"))
	   end if
	%>
    </font></td>
  </tr>

</TABLE>
</CENTER></DIV>

&nbsp;

<%		
	objRecordset.MoveNext
	loop

	set objRecordset=nothing
	set objConnect=nothing
%>
</FONT>
</P>
</BODY>
</HTML>

 

Début de page Le listing en détail...

Seules les nouveautés sont commentées.
Les codes entre < et > concernent l'affichage par HTML classique.

objRecordset.Open "SELECT * FROM [rqt Sites+Catégorie]
ORDER BY DateEnreg DESC;", objConnect
Une petite amélioration pour afficher la catégorie : la requête SQL ne se base plus sur la table tblSites, mais sur une requête Access créée au préalable. Plus bas dans le code HTML, on fera appel au champ Catégorie (de la table tblCatégories à l'origine), et non plus au champ CodeCatégorie (de la table tblSites).

Attention : même si cette requête simplifie la vie, elle peut ne pas passer selon le serveur. Il est conseillé de la remplacer par son équivalent "SQL pur".

 
<TABLE border="0" width="80%" cellspacing="1" cellpadding="2">
</TABLE>
&nbsp;
Chaque site est mise en forme grâce à un tableau. Après le tableau, un espace (&nbsp;) permet de séparer le site du suivant. Du fait du tableau, le code VBScript de l'exemple précédent se trouve éparpillé en plusieurs endroits de la page.
 
<td width="50%" colspan="2" bgcolor="#004080"><img src="icoTriangleRouge.gif"
width="10" height="10"> <font color="#FFFFFF"><strong>
<%=objRecordset("NomSite")%>
</strong></font></td>
Chaque champ de la requête (ici NomSite) est inséré dans une cellule du tableau (entre un <TD> et un </TD>.
Les autres balises jouent sur la présentation (couleurs, image).
 
<% if objRecordset("WebMaster") <> "" then 
	Response.Write("WebMaster : " & objRecordset("WebMaster"))
   end if
%>
Un petit test par If permet de vérifier si le webmaster est connu, et s'il faut dans ce cas l'afficher avec son intitulé.
 
<% if Isnull(objRecordset("Description")) then
	Response.Write("&nbsp;")
   else
	Response.Write(objRecordset("Description"))
   end if
%>
Ce test permet lui aussi de vérifier si la description du site a été renseignée. Si c'est le cas, on l'affiche, sinon on affiche un espace (&nbsp;). L'intérêt ? Si la cellule du tableau comprend un espace, elle sera affichée quand même. Pour mieux comprendre, remplacez toutes ces lignes par :
<% =objRecordset("Description") %>