ASP.NET Web Forms – Repeater 控件简介
| Repeater 控件用于顯示被綁定在該控件上的項目的重復列表。 |
綁定 DataSet 到 Repeater 控件
Repeater 控件用于顯示被綁定在該控件上的項目的重復列表。Repeater 控件可被綁定到數(shù)據(jù)庫表、XML 文件或者其他項目列表。在這里,我們將演示如何綁定 XML 文件到 Repeater 控件。
在我們的實例中,我們將使用下面的 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>首先,導入 "System.Data" 命名空間。我們需要該命名空間與 DataSet 對象一起工作。 把下面這條指令包含在 .aspx 頁面的頂部:
<%@ Import Namespace="System.Data" %>接著,為 XML 文件創(chuàng)建一個 DataSet,并在頁面第一次加載時把這個 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然后我們在 .aspx 頁面中創(chuàng)建一個 Repeater 控件。<HeaderTemplate> 元素中的內(nèi)容被首先呈現(xiàn),并且在輸出中僅出現(xiàn)一次,而 <ItemTemplate> 元素中的內(nèi)容會對應 DataSet 中的每條 "record" 重復出現(xiàn),最后,<FooterTemplate> 元素中的內(nèi)容在輸出中僅出現(xiàn)一次:
<html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> ... </HeaderTemplate> <ItemTemplate> ... </ItemTemplate> <FooterTemplate> ... </FooterTemplate> </asp:Repeater> </form> </body> </html>然后我們添加創(chuàng)建 DataSet 的腳本,并且綁定 mycdcatalog DataSet 到 Repeater 控件。然后
使用 HTML 標簽來填充 Repeater 控件,并通過 <%#Container.DataItem("fieldname")%> 綁定數(shù)據(jù)項目到 <ItemTemplate> 區(qū)域內(nèi)的單元格中:
實例
<%@ 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=mycdcatalogcdcatalog.DataBind() end if end sub </script> <html> <body> <form runat="server"> <asp:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>使用 <AlternatingItemTemplate>
您可以在 <ItemTemplate> 元素后添加 <AlternatingItemTemplate> 元素,用來描述輸出中交替行的外觀。在下面的實例中,表格每隔一行就會顯示為淺灰色的背景:
實例
<%@ 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:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <AlternatingItemTemplate> <tr bgcolor="#e8e8e8"> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>使用 <SeparatorTemplate>
<SeparatorTemplate> 元素用于描述每個記錄之間的分隔符。在下面的實例中,每個表格行之間插入了一條水平線:
實例
<%@ 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:Repeater id="cdcatalog" runat="server"> <HeaderTemplate> <table border="0" width="100%"> <tr> <th>Title</th> <th>Artist</th> <th>Country</th> <th>Company</th> <th>Price</th> <th>Year</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Container.DataItem("title")%></td> <td><%#Container.DataItem("artist")%></td> <td><%#Container.DataItem("country")%></td> <td><%#Container.DataItem("company")%></td> <td><%#Container.DataItem("price")%></td> <td><%#Container.DataItem("year")%></td> </tr> </ItemTemplate> <SeparatorTemplate> <tr> <td colspan="6"><hr /></td> </tr> </SeparatorTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </form> </body> </html>?
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Web Forms – Repeater 控件简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 隐私计算头条周刊(2.27-3.5)
- 下一篇: 腾讯QQ和360安全卫士之战升级