1. 创建 Repeater 控件: 在 ASP.NET Web 页面中,你可以使用以下标记创建一个 Repeater 控件:
<asp:Repeater ID="repeater1" runat="server">
<!-- 模板内容在这里 -->
</asp:Repeater>
Repeater 控件本身并不包含任何显示的内容,而是通过数据源和模板来生成。
2. 设置数据源: 使用 DataSource 属性将数据源(如 DataSet、DataTable、IEnumerable 等)与 Repeater 控件关联。
DataTable myDataTable = GetDataSource(); // 自定义方法获取数据源
repeater1.DataSource = myDataTable;
repeater1.DataBind();
3. 定义模板: 在 Repeater 控件内部,你需要定义一个模板,用于指定如何渲染每个数据项。
<asp:Repeater ID="repeater1" runat="server">
<ItemTemplate>
<div>
<%# Eval("ColumnName") %>
<!-- 其他模板内容 -->
</div>
</ItemTemplate>
</asp:Repeater>
在这个例子中,ItemTemplate 定义了每个数据项的模板,Eval("ColumnName") 用于绑定数据源中的列。
4. 数据绑定: 在代码中,使用 DataBind 方法将数据源绑定到 Repeater 控件。
repeater1.DataSource = myDataTable;
repeater1.DataBind();
这将触发 ItemDataBound 事件,你可以在该事件中执行自定义的逻辑。
5. ItemDataBound 事件: ItemDataBound 事件在每个数据项绑定到模板之后触发。你可以在这个事件中进行额外的处理。
protected void repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// 处理每个数据项的逻辑
Label lblColumnValue = e.Item.FindControl("lblColumnValue") as Label;
if (lblColumnValue != null)
{
lblColumnValue.Text = (e.Item.DataItem as DataRowView)["ColumnName"].ToString();
}
}
}
在这个例子中,我们通过 FindControl 方法找到模板中的控件,并设置其值。
Repeater 控件允许你以自定义的方式显示重复数据项,并提供了灵活性来适应各种需求。
转载请注明出处:http://www.zyzy.cn/article/detail/6583/ASP.NET