ASP.NET Web Forms - DataList 控制項
本節介紹了ASP.NETDataList控件,它比Repeater 控制項靈活,DataList 控制項以表格的形式呈現資料。DataList 控件,類似於Repeater 控件,用於顯示綁定在該控件上的項目的重複清單。不過,DataList 控制項會預設在資料項目上新增表格。
綁定DataSet 到DataList 控件
DataList 控件,類似於Repeater 控件,用於顯示綁定在該控件上的項目的重複清單。不過,DataList 控制項會預設在資料項目上新增表格。 DataList 控制項可綁定到資料庫表、XML檔案或其他項目清單。在這裡,我們將示範如何綁定XML 檔案到DataList 控制項。
在我們的實例中,我們將使用下面的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>查看這個XML 檔:cdcatalog.xml
首先,導入"System.Data" 命名空間。我們需要該命名空間與DataSet 物件一起工作。 把下面這條指令包含在.aspx 頁面的頂端:
<%@ Import Namespace="System.Data" %>接著,為XML 檔案建立一個DataSet,並在頁面第一次載入時把這個XML 檔案載入DataSet:
<script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))end ifend sub然後我們在.aspx 頁面中建立一個DataList 控制項。 <HeaderTemplate> 元素中的內容被先呈現,並且在輸出中僅出現一次,而<ItemTemplate> 元素中的內容會對應DataSet 中的每個"record" 重複出現,最後,<FooterTemplate> 元素中的內容在輸出中僅出現一次:
<html><body><form runat="server"><asp:DataList id="cdcatalog" runat="server"><HeaderTemplate>...</HeaderTemplate><ItemTemplate>...</ItemTemplate>< FooterTemplate>...</FooterTemplate></asp:DataList></form></body></html>然後我們新增建立DataSet 的腳本,並且綁定mycdcatalog DataSet 到DataList 控制項。然後使用包含表頭的<HeaderTemplate>、包含要顯示的資料項目的<ItemTemplate> 和包含文字的<FooterTemplate> 來填入DataList 控制項。請注意,可設定DataList 的gridlines 屬性為"both" 來顯示表格邊框:
實例
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSourcecm DataBind()end ifend 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>使用樣式
您也可以為DataList 控制項新增樣式,讓輸出更花俏:
實例
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSourcecm 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>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>使用<AlternatingItemTemplate>
您可以在<ItemTemplate> 元素後面加上<AlternatingItemTemplate> 元素,用來描述輸出中交替行的外觀。您可以在DataList 控制項內部對<AlternatingItemTemplate> 區域的資料新增樣式:
實例
<%@ Import Namespace="System.Data" %><script runat="server">sub Page_Loadif Not Page.IsPostBack thendim mycdcatalog=New DataSetmycdcatalog.ReadXml(MapPath("cdcatalog.xml"))cdcatalog.DataSourcecm 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="style-font-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>© Hege Refsnes</FooterTemplate></asp:DataList>< /form></body></html>