zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

思路代码 实现 获取 item
2023-06-13 09:14:44 时间
首先看看效果

Repeater控件,放在ItemTemplate内的铵钮OnClick之后,获取Repeater的Item,ItemIndex,CommandArgument,CommandName以及绑定的字段值。
准备数据
复制代码代码如下:

ViewCode
ImportsMicrosoft.VisualBasic
NamespaceInsus.NET
PublicClassCatalog
Private_IDAsInteger
Private_NameAsString
PublicPropertyIDAsInteger
Get
Return_ID
EndGet
Set(valueAsInteger)
_ID=value
EndSet
EndProperty
PublicPropertyNameAsString
Get
Return_Name
EndGet
Set(valueAsString)
_Name=value
EndSet
EndProperty
EndClass
EndNamespace

复制代码代码如下:

ViewCode
PrivateFunctionGetData()AsList(OfCatalog)
DimclsAsNewList(OfCatalog)
DimclAsCatalog=NewCatalog()
cl.ID=1
cl.Name="汽车"
cls.Add(cl)
cl=NewCatalog()
cl.ID=2
cl.Name="时尚"
cls.Add(cl)
cl=NewCatalog()
cl.ID=3
cl.Name="科技"
cls.Add(cl)
cl=NewCatalog()
cl.ID=5
cl.Name="文化"
cls.Add(cl)
cl=NewCatalog()
cl.ID=6
cl.Name="公益"
cls.Add(cl)
Returncls
EndFunction

在.aspx放置Repeater控件:
复制代码代码如下:
ViewCode
<asp:RepeaterID="RepeaterCatalog"runat="server">
<HeaderTemplate>
<tableborder="1"cellpadding="3"cellspacing="0">
<tr>
<td>ID
</td>
<td>Name
</td>
<td>Choose</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:LabelID="LabelID"runat="server"Text="<%#Eval("ID")%>"></asp:Label>
</td>
<td>
<asp:LabelID="LabelName"runat="server"Text="<%#Eval("Name")%>"></asp:Label>
</td>
<td>
<asp:ButtonID="Button1"runat="server"Text="Select"OnClick="Button1_Click"CommandArgument="<%#Eval("ID")%>"CommandName="Choose"/>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

在.aspx.vb为Repeater控件绑定数据
复制代码代码如下:
ViewCode
ImportsInsus.NET
PartialClassDefault2
InheritsSystem.Web.UI.Page
ProtectedSubPage_Load(senderAsObject,eAsEventArgs)HandlesMe.Load
IfNotIsPostBackThen
Data_Binding()
EndIf
EndSub
PrivateSubData_Binding()
Me.RepeaterCatalog.DataSource=GetData()
Me.RepeaterCatalog.DataBind()
EndSub
EndClass

接下来,我们写onclick事件,在写事件之前,先在.aspx放一个Label来显示事件结果:
复制代码代码如下:
Processinfor:
<asp:LabelID="LabelInfo"runat="server"Text=""></asp:Label>

复制代码代码如下:
ViewCode
ProtectedSubButton1_Click(senderAsObject,eAsEventArgs)
DimbtnAsButton=DirectCast(sender,Button)
DimcommandArgumentAsString=btn.CommandArgument
DimcommandNameAsString=btn.CommandName
DimitemAsRepeaterItem=DirectCast(btn.NamingContainer,RepeaterItem)
DimindexAsInteger=item.ItemIndex
DimidAsString=DirectCast(item.FindControl("LabelID"),Label).Text
DimnameAsString=DirectCast(item.FindControl("LabelName"),Label).Text
Me.LabelInfo.Text=String.Format("Itemindex:{0};CommandArgument:{1};CommandName:{2};ID:{3};Name:{4};",index,commandArgument,commandName,id,name)
EndSub