Liste de données des formulaires Web
ASP.NET Web Forms - Contrôle DataList
Le contrôle DataList, similaire au contrôle Repeater, est utilisé pour afficher les données liées au contrôle Liste d'éléments en double. Toutefois, le contrôle DataList ajoute par défaut une table aux éléments de données.
Lier DataSet au contrôle DataList
Le contrôle DataList, similaire au contrôle Repeater, est utilisé pour afficher une liste répétée d'éléments liés au contrôle. Toutefois, le contrôle DataList ajoute par défaut une table aux éléments de données. Le contrôle DataList peut être lié à une table de base de données, un fichier XML ou une autre liste d'éléments. Ici, nous allons montrer comment lier un fichier XML à un contrôle DataList.
Dans notre exemple nous utiliserons le fichier XML suivant ("cdcatalog.xml") :
<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 :
Ensuite, pour XML Le fichier crée un DataSet et charge ce fichier XML dans le DataSet lors du premier chargement de la page :
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 DataList 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 :
<body>
<form runat="server">
< asp:DataList id="cdcatalog" runat="server">
<HeaderTemplate>
...
</HeaderTemplate>
< ;ItemTemplate>
...
</ItemTemplate>
<FooterTemplate>
...
</FooterTemplate>
</ asp:DataList>
</form>
</body>
</html>
Ensuite, nous ajoutons le script pour créer le DataSet et liez le DataSet mycdcatalog au contrôle DataList. Alors Remplissez le contrôle DataList avec un <HeaderTemplate> qui contient l'en-tête, un <ItemTemplate> qui contient les éléments de données à afficher et un <FooterTemplate> Veuillez noter que la propriété quadrillage de DataList peut être définie sur "both" pour afficher les bordures 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:DataList id="cdcatalog" gridlines="Both" runat="server"> <HeaderTemplate> My CD Catalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" of <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> © Hege Refsnes </FooterTemplate> </asp:DataList> </form> </body> </html>
Exemple d'exécution»
Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne
Utiliser les styles
Vous pouvez également ajouter des styles au contrôle DataList pour rendre le sortie plus sophistiquée :
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:DataList id="cdcatalog" runat="server" cellpadding="2" cellspacing="2" borderstyle="inset" backcolor="#e8e8e8" width="100%" headerstyle-font-name="Verdana" headerstyle-font-size="12pt" headerstyle-horizontalalign="center" headerstyle-font-bold="True" itemstyle-backcolor="#778899" itemstyle-forecolor="#ffffff" footerstyle-font-size="9pt" footerstyle-font-italic="True"> <HeaderTemplate> My CD Catalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" of <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <FooterTemplate> © Hege Refsnes </FooterTemplate> </asp:DataList> </form> </body> </html>
Exécuter l'instance»
Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne exemple
Utilisation de <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. Vous pouvez ajouter des styles aux données dans la zone <AlternatingItemTemplate> à l'intérieur du contrôle DataList :
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:DataList id="cdcatalog" runat="server" cellpadding="2" cellspacing="2" borderstyle="inset" backcolor="#e8e8e8" width="100%" headerstyle-font-name="Verdana" headerstyle-font-size="12pt" headerstyle-horizontalalign="center" headerstyle-font-bold="True" itemstyle-backcolor="#778899" itemstyle-forecolor="#ffffff" alternatingitemstyle-backcolor="#e8e8e8" alternatingitemstyle-forecolor="#000000" footerstyle-font-size="9pt" footerstyle-font-italic="True"> <HeaderTemplate> My CD Catalog </HeaderTemplate> <ItemTemplate> "<%#Container.DataItem("title")%>" of <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </ItemTemplate> <AlternatingItemTemplate> "<%#Container.DataItem("title")%>" of <%#Container.DataItem("artist")%> - $<%#Container.DataItem("price")%> </AlternatingItemTemplate> <FooterTemplate> © Hege Refsnes </FooterTemplate> </asp:DataList> </form> </body> </html>
Exécuter l'instance»
Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne