Latest web development tutorials

Kontrole ASP.NET DataList

DataList kontrola, analogiczną do kontroli Repeater, zwykł był powtarzać liście Pokaż Wiązania pozycji na tej kontroli. Jednak DataList kontrola będzie domyślnie dodać tabelę do elementu danych.


Bind DataSet do kontrolki DataList

DataList kontrola, analogiczną do kontroli Repeater, zwykł był powtarzać liście Pokaż Wiązania pozycji na tej kontroli. Jednak DataList kontrola będzie domyślnie dodać tabelę do elementu danych. DataList kontrolna może być związana z tabeli bazy danych pliku XML lub innej listy pozycji. Tutaj pokażemy jak powiązać plik XML do kontroli DataList.

W naszym przykładzie użyjemy poniższego dokumentu XML ( "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>

Sprawdź plik XML: cdcatalog.xml

Po pierwsze, należy zaimportować przestrzeń nazw "System.Data". Musimy ten obszar nazw do pracy z obiektów DataSet. Poniższa instrukcja jest zawarta w górnej części strony .aspx:

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

Następnie należy utworzyć zestaw danych do pliku XML, a po stronie tego pierwszego ładunku ładowania pliku XML 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

Następnie tworzymy kontrolkę DataList w stronę aspx. <HeaderTemplate> Zawartość elementem staje się pierwszym i tylko raz na wyjściu, a <ItemTemplate> Zawartość element odpowiadający DataSet każdego "record" powtarza się, aż w końcu, <FooterTemplate> Zawartość elementu wyjście pojawić się tylko raz:

<html>
<body>

<form runat="server">
<asp:DataList id="cdcatalog" runat="server">

<HeaderTemplate>
...
</HeaderTemplate>

<ItemTemplate>
...
</ItemTemplate>

<FooterTemplate>
...
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

Następnie dodajemy skrypt do tworzenia zbioru danych, i wiąże mycdcatalog DataSet do kontroli DataList. Następnie zawierający nagłówek <HeaderTemplate>, zawierający dane mają być wyświetlane elementy <ItemTemplate> i zawierać tekst <FooterTemplate>, aby wypełnić kontrolę DataList. Pamiętaj, że możesz ustawić DataList linie siatki właściwość "both", aby pokazać granice tabeli:

Przykłady

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

Demonstracja >>

Używanie stylów

Można także dodać styl do formantu DataList, więc wyjście jest bardziej wyszukane:

Przykłady

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

Demonstracja >>

Użyj <AlternatingItemTemplate>

Można zakładać <ItemTemplate> elementu do <AlternatingItemTemplate> element jest używany do opisania wyglądu naprzemiennie rzędy wyjściu. Możesz dodać style danych <AlternatingItemTemplate> DataList obszaru kontroli we wnętrzu:

Przykłady

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

Demonstracja >>