日期:2009-05-22 浏览次数:21045 次
向页添加 Repeater Web 服务器控件需要若干步骤。下列过程描述创建一个工作的 Repeater 控件必须执行的最少步骤。
向 Web 窗体页添加 Repeater Web 服务器控件
' Visual Basic Protected Sub Page_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Put user code to initialize the page, including data, here. Repeater1.DataBind() End Sub // C# protected void Page_Load(object sender, EventArgs e) { // Put user code to initialize the page, including data, here. Repeater1.DataBind(); }
<asp:repeater id=Repeater1 runat="server" datasource="<%# dataView1 >"> <ItemTemplate> </ItemTemplate> </asp:repeater>
必须通过包括一个数据绑定表达式将控件绑定到数据。通常,将它们绑定到容器控件。显示数据源中每行的“EmployeeName”和“PhoneNumber”字段的 ItemTemplate 元素将类似如下所示:
<ItemTemplate> <%# DataBinder.Eval(Container, "DataItem.EmployeeName") %> <%# DataBinder.Eval(Container, "DataItem.PhoneNumber") %> <br> </ItemTemplate>
有关详细信息,请参见 Web 窗体页中的数据访问。
下面的示例说明一个完整的 Repeater 控件定义在“HTML”视图中应类似于什么样子。指定将 Repeater 控件呈现为表。<table> 元素在 HeaderTemplate 中开始并在 FooterTemplate 中结束。(“任务列表”将报告有关这种情况的错误,但是这些错误可以安全地忽略,在运行应用程序时,该表将正确地显示。)在 Repeater 控件体内,表单元格用于显示数据源的列。除了表单元格的背景色不同以创建带状效果外,AlternatingItemTemplate 元素与 ItemTemplate 项相同。
<asp:Repeater id=Repeater1 runat="server" DataSource="<%# DataView1%>"> <HeaderTemplate> <table width="100%" style="font: 8pt verdana"> <tr style="background-color:DFA894"> <th> First Name </th> <th> Last Name </th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%# DataBinder.Eval(Container, "DataItem.EmployeeName") %> </td> <td><%# DataBinder.Eval(Container,"DataItem.PhoneNumber") %> </td> </tr> </ItemTemplate> <AlternatingItemTemplate> <tr> <td bgcolor="lightblue"> <%# DataBinder.Eval(Container, "DataItem.EmployeeName") %> </td> <td bgcolor="lightblue"> <%# DataBinder.Eval(Container,"DataItem.PhoneNumber") %> </td> </tr> </AlternatingItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
下面的示例使用标签 (Label) 控件显示数据库的值。使用分隔符模板创建列表中值之间的分隔符。请注意,Label 控件的 Text 属性的值包含在单引号中。属性值通常放在双引号中,但是由于 DataBinder 调用包含双引号,所以 Text 属性值必须括在单引号中。
<asp:Repeater id="Repeater1" runat="server" DataSource="<%# DataView1%>"> <ItemTemplate> <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.EmployeeName")%>'> </asp:Label> </ItemTemplate> <SeparatorTemplate>,</SeparatorTemplate> </asp:Repeater>