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" %>
<!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>
<%@ 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>
プラットフォーム
Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition
Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。
バージョン情報
.NET Framework
サポート対象 : 3.0,2.0,1.1,1.0
参照
関連項目
Repeater クラス
Repeater メンバ
System.Web.UI.WebControls 名前空間
OnItemDataBound
RepeaterItemEventArgs
RepeaterItemEventHandler