Formulaires Web ASP.NET - Contrôle DataList
Cette section présente Le contrôle ASP.NET DataList est plus flexible que le contrôle Repeater. Le contrôle DataList présente les données sous la forme d'un tableau.Le contrôle DataList, similaire au contrôle Repeater, est utilisé pour afficher une liste répétitive 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.
Lier DataSet au contrôle DataList
Le contrôle DataList, similaire au contrôle Repeater, est utilisé pour afficher une liste répétitive 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") :
<?xml version="1.0" encoding="ISO-8859-1"?><catalogue><cd><title>Empire Burlesque</title><artist>Bob Dylan</artist><country>États-Unis</country ><company>Columbia</company><price>10,90</price><year>1985</year></cd><cd><title>Cache ton cœur</title><artist>Bonnie Tyler</artist><country>Royaume-Uni</country><company>CBS Records</company><price>9,90</price><year>1988</year></cd><cd><title>Les plus grands succès </title><artist>Dolly Parton</artist><country>États-Unis</country><company>RCA</company><price>9,90</price><year>1982</year></cd><cd><title>J'ai toujours le blues</title><artist>Gary Moore</artist><country>Royaume-Uni</country><company>Virgin records</company><price>10.20</price><year>1990</year></cd><cd><title>Eros</title><artist>Eros Ramazzotti</artist><pays>UE< /pays><société>BMG</société><prix>9,90</prix><année>1997</année></cd></catalog>Afficher 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 votre page .aspx :
<%@ Importer l'espace de noms="System.Data" %>Ensuite, créez un DataSet pour le fichier XML et chargez le fichier XML dans le DataSet lors du premier chargement de la page :
<script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend subEnsuite, 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. Enfin, le contenu de l'élément <FooterTemplate> est répété. Apparaît une seule fois dans la sortie :
<html><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 lions le mycdcatalog DataSet au contrôle DataList. Le contrôle DataList est ensuite renseigné avec un <HeaderTemplate> qui contient l'en-tête, un <ItemTemplate> qui contient les éléments de données à afficher et un <FooterTemplate> qui contient le texte. Notez que vous pouvez définir la propriété quadrillage de DataList sur « les deux » pour afficher les bordures du tableau :
Exemple
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalocdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>Mon catalogue de CD</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title" )%>" sur<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Utiliser des styles
Vous pouvez également ajouter des styles au contrôle DataList pour rendre la sortie plus sophistiquée :
Exemple
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalocdcatalog. DataBind()end ifend sub</script><html><body><form runat="serveur"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontale lalign="center"headerstyle-font-bold="true"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"footerstyle-font-size="9pt"footerstyle-font-italic="true">< Modèle d'en-tête>Mon Catalogue de CD</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Utiliser <AlternatingItemTemplate>
Vous pouvez ajouter un élément <AlternatingItemTemplate> après un é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 :
Exemple
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalocdcatalog. DataBind()end ifend sub</script><html><body><form runat="serveur"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontalalign="centre"headerstyle-font-bold="Tr ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" Vrai"><HeaderTemplate>Mon Catalogue de CD</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><AlternatingItemTemplate>"<%#Container.DataItem("title")%>" de<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></AlternatingItemTemplate><FooterTemplate>© Hege Refsnes</FooterTemplate></asp:DataList>< /form></body></html>