Latest web development tutorials

contrôles ASP.NET DataList

DataList contrôle, similaire au contrôle Repeater, utilisé pour répéter la liste Afficher les liaisons articles sur ce contrôle. Cependant, DataList contrôle par défaut à ajouter une table à l'élément de données.


DataSet Bind au contrôle DataList

DataList contrôle, similaire au contrôle Repeater, utilisé pour répéter la liste Afficher les liaisons articles sur ce contrôle. Cependant, DataList contrôle par défaut à ajouter une table à l'élément de données. DataList contrôle peut être lié à une table de base de données, fichier XML, ou d'une autre liste d'éléments. Ici, nous allons montrer comment lier un fichier XML à un contrôle DataList.

Dans notre exemple, nous allons utiliser le document suivant XML ( "de cdcatalog.xml"):

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

<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
<cd>
<title>Eros</title>
<artist>Eros Ramazzotti</artist>
<country>EU</country>
<company>BMG</company>
<price>9.90</price>
<year>1997</year>
</cd>
</catalog>

Vérifiez le fichier XML: cdcatalog.xml

Tout d'abord, importer l'espace de noms "System.Data". Nous avons besoin de cet espace de noms pour travailler avec des objets DataSet. L'instruction suivante est incluse dans le haut de la page .aspx:

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

Ensuite, créez un DataSet pour le fichier XML, et quand la première page le chargement de ce fichier XML loading DataSet:

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

Ensuite, nous créons un contrôle DataList dans une page .aspx. <HeaderTemplate> contenu de l'élément est rendu d'abord et une seule fois dans la sortie, et <ItemTemplate> contenu de l'élément correspondant à la DataSet chaque «dossier» est répété, et enfin, <FooterTemplate> contenu de l'élément sortie apparaît une seule fois:

<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 un DataSet, et se lie DataSet mycdcatalog le contrôle DataList. Ensuite, contenant en-tête <HeaderTemplate>, contenant les données à afficher les éléments <ItemTemplate> et contiennent du texte <FooterTemplate> pour remplir le contrôle DataList. Notez que vous pouvez définir le DataList GridLines propriété pour «les deux» pour montrer les frontières de la table:

Exemples

<%@ 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>

<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>
Copyright Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

La démonstration >>

Utilisation des styles

Vous pouvez également ajouter du style au contrôle DataList, donc la sortie est plus de fantaisie:

Exemples

<%@ 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>

<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>
Copyright Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

La démonstration >>

Utilisez <AlternatingItemTemplate>

Vous pouvez poster <ItemTemplate> élément <AlternatingItemTemplate> élément est utilisé pour décrire l'apparition de lignes de sortie alternatif. Vous pouvez ajouter des styles aux données <AlternatingItemTemplate> de zone de contrôle DataList à l'intérieur:

Exemples

<%@ 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>

<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>
&copy; Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

La démonstration >>