Repeater.ItemDataBound 事件
该事件在 Repeater 控件中的某一项被数据绑定后但尚未呈现在页面上之前发生。
**命名空间:**System.Web.UI.WebControls
**程序集:**System.Web(在 system.web.dll 中)
语法
声明
Public Event ItemDataBound As RepeaterItemEventHandler
用法
Dim instance As Repeater
Dim handler As RepeaterItemEventHandler
AddHandler instance.ItemDataBound, handler
public event RepeaterItemEventHandler ItemDataBound
public:
event RepeaterItemEventHandler^ ItemDataBound {
void add (RepeaterItemEventHandler^ value);
void remove (RepeaterItemEventHandler^ value);
}
/** @event */
public void add_ItemDataBound (RepeaterItemEventHandler value)
/** @event */
public void remove_ItemDataBound (RepeaterItemEventHandler value)
JScript 支持使用事件,但不支持进行新的声明。
备注
当 Repeater 控件中的某个项被数据绑定时引发此事件。
有关处理事件的更多信息,请参见 使用事件。
示例
下面的示例演示如何指定和编写 Repeater 控件的 ItemDataBound 事件的处理程序。数据将在被绑定到 Repeater 控件中的某一项之后但尚未呈现在页面上之前进行修改。
<%@ Page Language="VB" AutoEventWireup="True" %>
<html>
<head>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, e As EventArgs)
If Not IsPostBack Then
Dim values As New ArrayList()
values.Add(New Evaluation("Razor Wiper Blades", "Good"))
values.Add(New Evaluation("Shoe-So-Soft Softening Polish", "Poor"))
values.Add(New Evaluation("DynaSmile Dental Fixative", "Fair"))
Repeater1.DataSource = values
Repeater1.DataBind()
End If
End Sub
Sub R1_ItemDataBound(Sender As Object, e As RepeaterItemEventArgs)
' This event is raised for the header, the footer, separators, and items.
' Execute the following logic for Items and Alternating Items.
If (e.Item.ItemType = ListItemType.Item) Or _
(e.Item.ItemType = ListItemType.AlternatingItem) Then
If CType(e.Item.DataItem, Evaluation).Rating = "Good" Then
CType(e.Item.FindControl("RatingLabel"), Label).Text = _
"<b>***Good***</b>"
End If
End If
End Sub
Public Class Evaluation
Private myProductid As String
Private myRating As String
Public Sub New(newProductid As String, newRating As String)
Me.myProductid = newProductid
Me.myRating = newRating
End Sub
Public ReadOnly Property ProductID() As String
Get
Return myProductid
End Get
End Property
Public ReadOnly Property Rating() As String
Get
Return myRating
End Get
End Property
End Class
</script>
</head>
<body>
<h3>OnItemDataBound Example</h3>
<form runat=server>
<p>
<asp:Repeater id=Repeater1 OnItemDataBound="R1_ItemDataBound" runat="server">
<HeaderTemplate>
<table border=1>
<tr>
<td><b>Product</b></td>
<td><b>Consumer Rating</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td> <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "ProductID") %>' Runat="server"/> </td>
<td> <asp:Label id=RatingLabel Text='<%# DataBinder.Eval(Container.DataItem, "Rating") %>' Runat="server"/> </td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<html>
<head>
<script language="C#" runat="server">
void Page_Load(Object Sender, EventArgs e) {
if (!IsPostBack) {
ArrayList values = new ArrayList();
values.Add(new Evaluation("Razor Wiper Blades", "Good"));
values.Add(new Evaluation("Shoe-So-Soft Softening Polish", "Poor"));
values.Add(new Evaluation("DynaSmile Dental Fixative", "Fair"));
Repeater1.DataSource = values;
Repeater1.DataBind();
}
}
void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {
// This event is raised for the header, the footer, separators, and items.
// Execute the following logic for Items and Alternating Items.
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
if (((Evaluation)e.Item.DataItem).Rating == "Good") {
((Label)e.Item.FindControl("RatingLabel")).Text= "<b>***Good***</b>";
}
}
}
public class Evaluation {
private string productid;
private string rating;
public Evaluation(string productid, string rating) {
this.productid = productid;
this.rating = rating;
}
public string ProductID {
get {
return productid;
}
}
public string Rating {
get {
return rating;
}
}
}
</script>
</head>
<body>
<h3>OnItemDataBound Example</h3>
<form runat=server>
<p>
<asp:Repeater id=Repeater1 OnItemDataBound="R1_ItemDataBound" runat="server">
<HeaderTemplate>
<table border=1>
<tr>
<td><b>Product</b></td>
<td><b>Consumer Rating</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td> <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "ProductID") %>' Runat="server"/> </td>
<td> <asp:Label id=RatingLabel Text='<%# DataBinder.Eval(Container.DataItem, "Rating") %>' Runat="server"/> </td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
</form>
</body>
</html>
平台
Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
请参见
参考
Repeater 类
Repeater 成员
System.Web.UI.WebControls 命名空间
OnItemDataBound
RepeaterItemEventArgs
RepeaterItemEventHandler