ASP.NET Web Forms – DataList-Steuerelement
In diesem Abschnitt wird vorgestellt Das ASP.NET DataList-Steuerelement ist flexibler als das Repeater-Steuerelement. Das DataList-Steuerelement stellt Daten in Form einer Tabelle dar.Das DataList-Steuerelement wird ähnlich wie das Repeater-Steuerelement verwendet, um eine sich wiederholende Liste von Elementen anzuzeigen, die an das Steuerelement gebunden sind. Das DataList-Steuerelement fügt den Datenelementen jedoch standardmäßig eine Tabelle hinzu.
Binden Sie DataSet an das DataList-Steuerelement
Das DataList-Steuerelement wird ähnlich wie das Repeater-Steuerelement verwendet, um eine sich wiederholende Liste von Elementen anzuzeigen, die an das Steuerelement gebunden sind. Das DataList-Steuerelement fügt den Datenelementen jedoch standardmäßig eine Tabelle hinzu. Das DataList-Steuerelement kann an eine Datenbanktabelle, eine XML-Datei oder eine andere Liste von Elementen gebunden werden. Hier zeigen wir, wie man eine XML-Datei an ein DataList-Steuerelement bindet.
In unserem Beispiel verwenden wir die folgende XML-Datei („cdcatalog.xml“):
<?xml version="1.0" binding="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>Immer noch erhalten Blues</title><artist>Gary Moore</artist><country>UK</country><company>Virgin Schallplatten</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>Sehen Sie sich diese XML-Datei an: cdcatalog.xml
Importieren Sie zunächst den Namespace „System.Data“. Wir benötigen diesen Namespace, um mit DataSet-Objekten arbeiten zu können. Fügen Sie die folgende Anweisung oben auf Ihrer ASPX-Seite ein:
<%@ Import Namespace="System.Data" %>Erstellen Sie als Nächstes ein DataSet für die XML-Datei und laden Sie die XML-Datei in das DataSet, wenn die Seite zum ersten Mal geladen wird:
<script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend subDann erstellen wir ein DataList-Steuerelement auf der ASPX-Seite. Der Inhalt im <HeaderTemplate>-Element wird zuerst gerendert und erscheint nur einmal in der Ausgabe, während der Inhalt im <ItemTemplate>-Element für jeden „Datensatz“ im DataSet wiederholt wird. Schließlich ist der Inhalt im <FooterTemplate>-Element Erscheint nur einmal in der Ausgabe:
<html><body><form runat="server"><asp:DataList id="cdcatalog" runat="server"><HeaderTemplate>...</HeaderTemplate><ItemTemplate>...</ItemTemplate>< FooterTemplate>...</FooterTemplate></asp:DataList></form></body></html>Dann fügen wir das Skript hinzu, um das DataSet zu erstellen und das mycdcatalog DataSet an das DataList-Steuerelement zu binden. Das DataList-Steuerelement wird dann mit einem <HeaderTemplate> gefüllt, das den Header enthält, einem <ItemTemplate>, das die anzuzeigenden Datenelemente enthält, und einem <FooterTemplate>, das den Text enthält. Beachten Sie, dass Sie die Gridlines-Eigenschaft der DataList auf „both“ setzen können, um Tabellenränder anzuzeigen:
Beispiel
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"gridlines="both" runat="server"><HeaderTemplate>Mein CD-Katalog</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title" )%>" von<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price")%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Verwenden Sie Stile
Sie können dem DataList-Steuerelement auch Stile hinzufügen, um die Ausgabe ansprechender zu gestalten:
Beispiel
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizonta lalign="center"headerstyle-font-bold="true"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"footerstyle-font-size="9pt"footerstyle-font-italic="true">< HeaderTemplate>Mein CD-Katalog</HeaderTemplate><ItemTemplate>"<%#Container.DataItem("title")%>" of<%#Container.DataItem("artist")%> -$<%#Container.DataItem("price" )%></ItemTemplate><FooterTemplate>Copyright Hege Refsnes</FooterTemplate></asp:DataList></form></body></html>Verwenden Sie <AlternatingItemTemplate>
Sie können nach einem <ItemTemplate>-Element ein <AlternatingItemTemplate>-Element hinzufügen, um das Erscheinungsbild abwechselnder Zeilen in der Ausgabe zu beschreiben. Sie können den Daten im Bereich <AlternatingItemTemplate> im DataList-Steuerelement Stile hinzufügen:
Beispiel
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSource=mycdcatalogcdcatalog. DataBind()end ifend sub</script><html><body><form runat="server"><asp:DataList id="cdcatalog"runat="server"cellpadding="2"cellspacing="2"borderstyle="inset"backcolor="#e8e8e8"headerstyle-font-name="Verdana"headerstyle-font-size="12pt"headerstyle -horizontalalign="center"headerstyle-font-bold="Tr ue"itemstyle-backcolor="#778899"itemstyle-forecolor="#ffffff"alternatingitemstyle-backcolor="#e8e8e8"alternatingitemstyle-forecolor="#000000"footerstyle-font-size="9pt"footerstyle-font-italic=" True"><HeaderTemplate>My CD-Katalog</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>