获取Repeter的Item和ItemIndex/CommandArgument实现思路与代码

所属分类: 网络编程 / ASP.NET 阅读数: 724
收藏 0 赞 0 分享
首先看看效果

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" OnClick="Button1_Click" 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
更多精彩内容其他人还在看

详解.NET中的加密算法总结(自定义加密Helper类续)

这篇文章主要介绍了详解.NET中的加密算法总结(自定义加密Helper类续) ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
收藏 0 赞 0 分享

详谈.NET的异常处理

本文在对异常的介绍中,主要介绍了CLR的异常处理机制,一些较为通用的异常代码,以及对Exception类的介绍。具有很好的参考价值,需要的朋友一起来看下吧
收藏 0 赞 0 分享

浅谈Main方法的参数

本文主要对Main方法的参数通过案例分析进行介绍,具有很好的参考价值,需要的朋友一起来看下吧
收藏 0 赞 0 分享

详解.net循环、逻辑语句块(基础知识)

本篇是介绍.NET 基础部分,主要简述循环,判断,对初学者具有很好的参考借鉴价值,下面就跟小编一起来看下吧
收藏 0 赞 0 分享

BaiduTemplate模板引擎使用示例(附源码)

本文主要分享了BaiduTemplate模板引擎使用示例,具有很好的参考价值,需要的朋友一起来看下吧
收藏 0 赞 0 分享

Asp.net中通过Button打开另一个的frm

本文通过实例代码给大家介绍了asp.net中通过button打开另一个frm的方法,非常不错,需要的朋友参考下吧
收藏 0 赞 0 分享

.NET framework 4.0 安装失败回滚问题

这篇文章主要介绍了.NET framework 4.0 安装失败回滚问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

.NET实现文件跨服务器上传下载的方法

这篇文章主要给大家介绍了.NET文件如何实现跨服务器上传下载的方法,文中通过图片介绍的很详细,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们可以跟着小编来一起学习学习吧。
收藏 0 赞 0 分享

ASP.NET操作MySql数据库的实例代码讲解

这篇文章主要介绍了ASP.NET操作MySql数据库的实例代码讲解,需要的朋友可以参考下
收藏 0 赞 0 分享

Asp.net Core 1.1 升级后操作mysql出错的解决办法

这篇文章主要介绍了Asp.net Core 1.1 升级后操作mysql出错的解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多