手记

获取Repeter的Item和ItemIndex

首先看看效果:

 

 Repeater控件,放在ItemTemplate内的铵钮OnClick之后,获取Repeater的Item,ItemIndex,CommandArgument,CommandName以及绑定的字段值。

准备数据:

View Code

 1 Imports Microsoft.VisualBasic 2 Namespace Insus.NET 3  4     Public Class Catalog 5  6         Private _ID As Integer 7         Private _Name As String 8  9         Public Property ID As Integer10             Get11                 Return _ID12             End Get13             Set(value As Integer)14                 _ID = value15             End Set16         End Property17 18         Public Property Name As String19             Get20                 Return _Name21             End Get22             Set(value As String)23                 _Name = value24             End Set25         End Property26 27     End Class28 End Namespace

 

View Code

 1  Private Function GetData() As List(Of Catalog) 2         Dim cls As New List(Of Catalog) 3  4         Dim cl As Catalog = New Catalog() 5         cl.ID = 1 6         cl.Name = "汽车" 7         cls.Add(cl) 8  9         cl = New Catalog()10         cl.ID = 211         cl.Name = "时尚"12         cls.Add(cl)13 14         cl = New Catalog()15         cl.ID = 316         cl.Name = "科技"17         cls.Add(cl)18 19         cl = New Catalog()20         cl.ID = 521         cl.Name = "文化"22         cls.Add(cl)23 24         cl = New Catalog()25         cl.ID = 626         cl.Name = "公益"27         cls.Add(cl)28         Return cls29     End Function


在.aspx放置Repeater控件:

View Code

 <asp:Repeater ID="RepeaterCatalog" runat="server">                <HeaderTemplate>                    <table border="1" cellpadding="3" cellspacing="0">                        <tr>                            <td>ID                            </td>                            <td>Name                            </td>                            <td>Choose</td>                        </tr>                </HeaderTemplate>                <ItemTemplate>                    <tr>                        <td>                            <asp:Label ID="LabelID" runat="server" Text='<%# Eval("ID")%>'></asp:Label>                        </td>                        <td>                            <asp:Label ID="LabelName" runat="server" Text='<%# Eval("Name")%>'></asp:Label>                        </td>                        <td>                            <asp:Button ID="Button1" runat="server" Text="Select" OnClick="Button1_Click" CommandArgument='<%# Eval("ID")%>' CommandName="Choose" />                        </td>                    </tr>                </ItemTemplate>                <FooterTemplate>                    </table>                </FooterTemplate>            </asp:Repeater>


在.aspx.vb为Repeater控件绑定数据:

View Code

Imports Insus.NETPartial 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 SubEnd Class


接下来,我们写onclick事件,在写事件之前,先在.aspx放一个Label来显示事件结果:

View Code

Process infor:<asp:Label ID="LabelInfo" 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


 

0人推荐
随时随地看视频
慕课网APP