获取Repeter的Item和ItemIndex/CommandArgument实现思路与代码
获取Repeter的Item和ItemIndex/CommandArgument实现思路与代码
发布时间:2017-01-07 来源:查字典编辑
摘要:首先看看效果:Repeater控件,放在ItemTemplate内的铵钮OnClick之后,获取Repeater的Item,ItemInde...

首先看看效果:

1

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 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" 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 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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新asp.net教程学习
热门asp.net教程学习
编程开发子分类