Repeater.ItemDataBound 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
该事件在 Repeater 控件中的某一项被数据绑定后但尚未呈现在页面上之前发生。
public:
event System::Web::UI::WebControls::RepeaterItemEventHandler ^ ItemDataBound;
public event System.Web.UI.WebControls.RepeaterItemEventHandler ItemDataBound;
member this.ItemDataBound : System.Web.UI.WebControls.RepeaterItemEventHandler
Public Custom Event ItemDataBound As RepeaterItemEventHandler
事件类型
示例
以下示例演示如何为 ItemDataBound 控件的事件 Repeater 指定和编码处理程序。 在数据绑定到控件中的 Repeater 项之后,但在页面上呈现数据之前,会对其进行修改。
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>OnItemDataBound Example</title>
<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 id="form1" runat="server">
<br />
<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>
<br />
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>OnItemDataBound Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>OnItemDataBound Example</h3>
<br />
<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>
<br />
</form>
</body>
</html>
注解
当控件中的项被数据绑定时, Repeater 将引发此事件。
有关如何处理事件的详细信息,请参阅 处理和引发事件。