Repeater 和DataList控件
Repeater 控件只是在绑定数据上迭代,为 DataSource 集合中的每一项呈现一次 ItemTemplate。除了其模板中包含的元素外,它不呈现任何内容。Repeater 是一个通用用途的迭代程序,而 DataList 提供了一些控制列表布局的附加功能。与 Repeater 不同,DataList 呈现模板定义外的其他元素(如表行及包含样式属性的单元格和跨距),以启用这种更丰富的格式设置。例如,DataList 支持 RepeatColumns 和 RepeatDirection 属性,这两个属性指定数据是否应在多列中呈现,以及数据项的呈现方向(垂直方向或水平方向)。DataList 还支持样式属性,如下例所示。
<ASP:DataList runat="server" DataSource="<%#MyData%>" RepeatColumns="2" RepeatDirection="Horizontal" ItemStyle-Font-Size="10pt" ItemStyle-Font-Name="Verdana" > ... </ASP:DataList>
<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <html> <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Trusted_Connection=yes"); SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles", myConnection); DataSet ds = new DataSet(); myCommand.Fill(ds, "书名"); MyDataList.DataSource = ds.Tables["书名"].DefaultView; MyDataList.DataBind(); } </script> <body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0"> <!-- #include virtual="/quickstart/aspplus/samples/webforms/customize/header.inc" --> <ASP:DataList id="MyDataList" RepeatColumns="2" runat="server"> <ItemTemplate> <table cellpadding=10 style="font: 10.5pt 宋体"> <tr> <td width=1 bgcolor="BD8672"/> <td valign="top"> <img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' > </td> <td valign="top"> <b>书名:</b><%# DataBinder.Eval(Container.DataItem, "title") %><br> <b>类别:</b><%# DataBinder.Eval(Container.DataItem, "type") %><br> <b>出版商 ID:</b><%# DataBinder.Eval(Container.DataItem, "pub_id") %><br> <b>价格:</b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %> <p> <a href='<%# DataBinder.Eval(Container.DataItem, "title_id", "purchase.aspx?titleid={0}") %>' > <img border="0" src="/quickstart/aspplus/images/purchase_book.gif" > </a> </td> </tr> </table> </ItemTemplate> </ASP:DataList> <!-- #include virtual="/quickstart/aspplus/samples/webforms/customize/footer.inc" --> </body> </html>