Tutoriel sur le...login
Tutoriel sur les pages Web
auteur:php.cn  temps de mise à jour:2022-04-11 14:20:28

Répéteur de formulaires Web



Le contrôle Répéteur permet d'afficher une liste répétitive d'éléments liés au contrôle.


Lier DataSet au contrôle Repeater

Le contrôle Repeater est utilisé pour afficher une liste répétitive d'éléments liés au contrôle. Les contrôles répéteurs peuvent être liés à des tables de base de données, des fichiers XML ou d'autres listes d'éléments. Ici, nous allons montrer comment lier un fichier XML à un contrôle Repeater.

Dans notre exemple nous utiliserons le fichier XML suivant ("cdcatalog.xml") :

<?xml version="1.0" encoding="ISO- 8859-1 "?>

<catalogue>
<cd>
<title>Empire Burlesque</title>
<artiste>Bob Dylan</artiste>
<pays>États-Unis</pays>
<entreprise>Columbia</entreprise>
<prix>10,90</prix>
<année>1985</année>
</cd>
<cd>
<title>Cachez votre cœur</title>
<artiste>Bonnie Tyler</artiste>
<pays>Royaume-Uni</pays>
<entreprise>CBS Records</entreprise>
<prix>9,90</prix>
<année>1988</année>
</cd>
<cd>
<title>Les plus grands succès</title>
<artiste>Dolly Parton</artiste>
<pays>États-Unis</pays>
<entreprise>RCA</entreprise>
<prix>9,90</prix>
<année>1982</année>
</cd>
<cd>
<title>J'ai toujours le blues</title>
<artiste>Gary Moore</artiste>
<pays>Royaume-Uni</pays>
<entreprise>Virgin records</entreprise>
<prix>10,20</prix>
<année>1990</année>
</cd>
<cd>
<title>Eros</title>
<artiste>Eros Ramazzotti</artiste>
<pays>UE</pays>
<entreprise>BMG</entreprise>
<prix>9,90</prix>
<année>1997</année>
</cd>
</catalogue>

Affichez ce fichier XML : cdcatalog.xml

Tout d'abord, importez l'espace de noms "System.Data". Nous avons besoin de cet espace de noms pour travailler avec les objets DataSet. Incluez la directive suivante en haut de la page .aspx :

<%@ Import Namespace="System.Data" %>

Ensuite, pour XML Le fichier crée un DataSet et charge ce fichier XML dans le DataSet lors du premier chargement de la page :

<script runat="server">
sub Page_Load
if Not Page. IsPostBack alors
​ dim mycdcatalog=Nouveau jeu de données
​ mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
end if
end sub

Ensuite, nous créons un contrôle Repeater dans la page .aspx. Le contenu de l'élément <HeaderTemplate> est rendu en premier et n'apparaît qu'une seule fois dans la sortie, tandis que le contenu de l'élément <ItemTemplate> est répété pour chaque "enregistrement" du DataSet, et enfin, le contenu de l'élément <ItemTemplate> Élément FooterTemplate> Le contenu de n'apparaît qu'une seule fois dans la sortie :

<html>
<body>

<form runat="server">
< asp:Repeater id="cdcatalog" runat="server">

<HeaderTemplate>
...
</HeaderTemplate>

< ;ItemTemplate>
...
</ItemTemplate>

<FooterTemplate>
...
</FooterTemplate>

</ asp:Repeater>
</form>

</body>
</html>

Ensuite, nous ajoutons le script pour créer le DataSet et liez le DataSet mycdcatalog au contrôle Repeater. Alors Utilisez des balises HTML pour remplir le contrôle Repeater et lier les éléments de données aux cellules de la zone <ItemTemplate> via <%#Container.DataItem("fieldname")%> :

Instance

<%@ Import Namespace="System.Data" %>

<script  runat="server">
sub Page_Load
if Not Page.IsPostBack then
   dim mycdcatalog=New DataSet
   mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
   cdcatalog.DataSource=mycdcatalog
   cdcatalog.DataBind()
end if
end sub
</script>

<!DOCTYPE html>
<html>
<body>

<form runat="server">
<asp:Repeater id="cdcatalog" runat="server">

<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>Title</th>
<th>Artist</th>
<th>Company</th>
<th>Price</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem("title")%> </td>
<td><%#Container.DataItem("artist")%> </td>
<td><%#Container.DataItem("company")%> </td>
<td><%#Container.DataItem("price")%> </td>
</tr>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</html>
</body>

Exécuter l'instance»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne


Utiliser< AlternatingItemTemplate>

Vous pouvez ajouter un élément <AlternatingItemTemplate> après l'élément <ItemTemplate> pour décrire l'apparence des lignes alternées dans la sortie. Dans l'exemple suivant, une ligne sur deux du tableau est affichée avec un fond gris clair :

Instance

<%@ Import Namespace="System.Data" %>

<script  runat="server">
sub Page_Load
if Not Page.IsPostBack then
   dim mycdcatalog=New DataSet
   mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
   cdcatalog.DataSource=mycdcatalog
   cdcatalog.DataBind()
end if
end sub
</script>

<!DOCTYPE html>
<html>
<body>

<form runat="server">
<asp:Repeater id="cdcatalog" runat="server">

<HeaderTemplate>
<table border="1" width="100%">
<tr>
<th>Title</th>
<th>Artist</th>
<th>Company</th>
<th>Price</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem("title")%> </td>
<td><%#Container.DataItem("artist")%> </td>
<td><%#Container.DataItem("company")%> </td>
<td><%#Container.DataItem("price")%> </td>
</tr>
</ItemTemplate>

<AlternatingItemTemplate>
<tr bgcolor="#e8e8e8">
<td><%#Container.DataItem("title")%> </td>
<td><%#Container.DataItem("artist")%> </td>
<td><%#Container.DataItem("company")%> </td>
<td><%#Container.DataItem("price")%> </td>
</tr>
</AlternatingItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</html>
</body>

Instance en cours d'exécution»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne


Utilisez l'élément <SeparatorTemplate>

<SeparatorTemplate> pour décrire le séparateur entre chaque enregistrement. Dans l'exemple suivant, une ligne horizontale est insérée entre chaque ligne du tableau :

Instance

<%@ Import Namespace="System.Data" %>

<script  runat="server">
sub Page_Load
if Not Page.IsPostBack then
   dim mycdcatalog=New DataSet
   mycdcatalog.ReadXml(MapPath("cdcatalog.xml"))
   cdcatalog.DataSource=mycdcatalog
   cdcatalog.DataBind()
end if
end sub
</script>

<!DOCTYPE html>
<html>
<body>

<form runat="server">
<asp:Repeater id="cdcatalog" runat="server">

<HeaderTemplate>
<table border="0" width="100%">
<tr>
<th align="left">Title</th>
<th align="left">Artist</th>
<th align="left">Company</th>
<th align="left">Price</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem("title")%> </td>
<td><%#Container.DataItem("artist")%> </td>
<td><%#Container.DataItem("company")%> </td>
<td><%#Container.DataItem("price")%> </td>
</tr>
</ItemTemplate>

<SeparatorTemplate>
<tr>
<td colspan="6"><hr></td>
</tr>
</SeparatorTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</html>
</body>

Instance en cours d'exécution»

Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne


Site Web PHP chinois