获取Repeter的Item和ItemIndex

首先看看效果:

获取Repeter的Item和ItemIndex

 

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

准备数据:

获取Repeter的Item和ItemIndex 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 Integer

10             Get

11                 Return _ID

12             End Get

13             Set(value As Integer)

14                 _ID = value

15             End Set

16         End Property

17 

18         Public Property Name As String

19             Get

20                 Return _Name

21             End Get

22             Set(value As String)

23                 _Name = value

24             End Set

25         End Property

26 

27     End Class

28 End Namespace

 

获取Repeter的Item和ItemIndex 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 = 2

11         cl.Name = "时尚"

12         cls.Add(cl)

13 

14         cl = New Catalog()

15         cl.ID = 3

16         cl.Name = "科技"

17         cls.Add(cl)

18 

19         cl = New Catalog()

20         cl.ID = 5

21         cl.Name = "文化"

22         cls.Add(cl)

23 

24         cl = New Catalog()

25         cl.ID = 6

26         cl.Name = "公益"

27         cls.Add(cl)

28         Return cls

29     End Function


在.aspx放置Repeater控件:

获取Repeter的Item和ItemIndex 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控件绑定数据:

获取Repeter的Item和ItemIndex 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来显示事件结果:

获取Repeter的Item和ItemIndex View Code
Process infor:

<asp:Label ID="LabelInfo" runat="server" Text=""></asp:Label>

 

获取Repeter的Item和ItemIndex 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


 

你可能感兴趣的:(index)