Repeater控件,放在ItemTemplate内的铵钮OnClick之后,获取Repeater的Item,ItemIndex,CommandArgument,CommandName以及绑定的字段值附演示动画感兴趣的朋友可以了解下
首先看看效果: 

Repeater控件,放在ItemTemplate内的铵钮OnClick之后,获取Repeater的Item,ItemIndex,CommandArgument,CommandName以及绑定的字段值。
准备数据:
复制代码 代码如下:
 
View Code 
Imports Microsoft.VisualBasic 
Namespace Insus.NET 
Public Class Catalog 
Private _ID As Integer 
Private _Name As String 
Public Property ID As Integer 
Get 
Return _ID 
End Get 
Set(value As Integer) 
_ID = value 
End Set 
End Property 
Public Property Name As String 
Get 
Return _Name 
End Get 
Set(value As String) 
_Name = value 
End Set 
End Property 
End Class 
End Namespace 
复制代码 代码如下:
 
View Code 
Private Function GetData() As List(Of Catalog) 
Dim cls As New List(Of Catalog) 
Dim cl As Catalog = New Catalog() 
cl.ID = 1 
cl.Name = "汽车" 
cls.Add(cl) 
cl = New Catalog() 
cl.ID = 2 
cl.Name = "时尚" 
cls.Add(cl) 
cl = New Catalog() 
cl.ID = 3 
cl.Name = "科技" 
cls.Add(cl) 
cl = New Catalog() 
cl.ID = 5 
cl.Name = "文化" 
cls.Add(cl) 
cl = New Catalog() 
cl.ID = 6 
cl.Name = "公益" 
cls.Add(cl) 
Return cls 
End Function 
在.aspx放置Repeater控件:
复制代码 代码如下:
 
View Code 
<asp:Repeater runat="server"> 
<HeaderTemplate> 
<table cellpadding="3" cellspacing="0"> 
<tr> 
<td>ID 
</td> 
<td>Name 
</td> 
<td>Choose</td> 
</tr> 
</HeaderTemplate> 
<ItemTemplate> 
<tr> 
<td> 
<asp:Label runat="server" Text='<%# Eval("ID")%>'></asp:Label> 
</td> 
<td> 
<asp:Label runat="server" Text='<%# Eval("Name")%>'></asp:Label> 
</td> 
<td> 
<asp:Button runat="server" Text="Select" CommandArgument='<%# Eval("ID")%>' CommandName="Choose" /> 
</td> 
</tr> 
</ItemTemplate> 
<FooterTemplate> 
</table> 
</FooterTemplate> 
</asp:Repeater> 
在.aspx.vb为Repeater控件绑定数据:
复制代码 代码如下:
 
View Code 
Imports Insus.NET 
Partial Class Default2 
Inherits System.Web.UI.Page 
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
If Not IsPostBack Then 
Data_Binding() 
End If 
End Sub 
Private Sub Data_Binding() 
Me.RepeaterCatalog.DataSource = GetData() 
Me.RepeaterCatalog.DataBind() 
End Sub 
End Class 
接下来,我们写onclick事件,在写事件之前,先在.aspx放一个Label来显示事件结果:
复制代码 代码如下:
 
Process infor: 
<asp:Label runat="server" Text=""></asp:Label> 
复制代码 代码如下:
 
View Code 
Protected Sub Button1_Click(sender As Object, e As EventArgs) 
Dim btn As Button = DirectCast(sender, Button) 
Dim commandArgument As String = btn.CommandArgument 
Dim commandName As String = btn.CommandName 
Dim item As RepeaterItem = DirectCast(btn.NamingContainer, RepeaterItem) 
Dim index As Integer = item.ItemIndex 
Dim id As String = DirectCast(item.FindControl("LabelID"), Label).Text 
Dim name As String = DirectCast(item.FindControl("LabelName"), Label).Text 
Me.LabelInfo.Text = String.Format("Item index: {0}; CommandArgument: {1}; CommandName: {2}; ID: {3}; Name: {4};", index, commandArgument, commandName, id, name) 
End Sub 
您可能感兴趣的文章:
