Il controlo DataList come il Repeater, è usato per visualizzare una lista di elmenti collegati al controllo.
Vediamo un esempio utilizzando il file XML "friends.xml"
<?xml version="1.0" encoding="ISO-8859-1"?>
<friends>
<friend>
<name>Pippo</name>
<telephone>2899902084</telephone>
</friend>
<friend>
<name>Paperino</name>
<telephone>034777221</telephone>
</friend>
<friend>
<name>Topolino</name>
<telephone>399723452</telephone>
</friend>
<friend>
<name>Paperone</name>
<telephone>003882482</telephone>
</friend>
</friends>
Importiamo il namespace System.Data
Quindi creiamo il dataset la prima volta che la pagina viene creata. Creiamo quindi il datalist. I contenuti dell’elemento <HeaderTemplate> sono renderizzati all’inizio dell’output, quelli dell’elemento <ItemTemplate> vengono ripetuti per ogni record del dataset, edi ingine quelli dell’elemento <FooterTemplate> sono stampati alla fine. Infine effettuiamo il collegamento dei dati (databind).
Possiamo utilizzare degli attributi di stile per colorare il DatalList, e alternare i formati per riche pari e dispari tramite AlternatingItemTemplate.
<%@ using Namespace="System.Data" %>
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack )
{
DataSet myFriends = new DataSet();
myFriends.ReadXml("myFriends.xml");
dlMyFriends.DataSource = myFriends;
dlMyFriends.DataBind();
}
}
</script>
<html>
<body>
<form runat="server">
<asp:DataList id="dlMyFriends" gridlines="both" 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 friends ----------
</HeaderTemplate>
<ItemTemplate>
"<%#Container.DataItem("name")%>" Tel. <%#Container.DataItem("telephone")%>
</ItemTemplate>
<AlternatingItemTemplate>
"<%#Container.DataItem("name")%>" Tel. <%#Container.DataItem("telephone")%>
</AlternatingItemTemplate>
<FooterTemplate>
---------- My friends ----------
</FooterTemplate>
</asp:DataList>
</form>
</body>
</html>