大家都知道,repeater控件是为了方便于遍历数据的控件,其主要的功能如下
<asp:Repeater ID="RepeaterX" runat="server">
<ItemTemplate>
<a href="#" > <%#Eval("Test") %></a>
</ItemTemplate>
<ItemTemplate>
<asp:button runat="server" />
</ItemTemplate>
</asp:Repeater>
那么,如果要将其中某一指定行的值提取出来并赋给后台的buttonclick事件如:string exc = “Test”;
使其可以在button点击的时候可以把指定行的test值给提取出来,应该如何实现?
在线等。
把a标签 换成asp:label 控件 以便在后台查找 如下:
<asp:Repeater ID="RepeaterX" runat="server"> <ItemTemplate> <a href="#"><asp:Label runat="server" ID="labMessage" Text='<%#Eval("Test")%>'></asp:Label></a> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" /> </ItemTemplate> </asp:Repeater>
在OnClick时:
protected void Button1_Click(object sender, EventArgs e) { Button btn = sender as Button; RepeaterItem rpt = btn.Parent as RepeaterItem; Label lab= rpt.FindControl("labMessage") as Label; string result = lab.Text; }
这样就可以取出绑定在lable上的[Eval("Test")]值了
这样确实可以提取,不过希望所有button点击的时候不会只提取第一个lable的值。
@hello c#!: RepeaterItem 是Repeater的一项 即 该行的button点击会获取该行的lable的值(类似一对一的对应) 并不是取Repeater的第一个lable控件值
@Chaoa: 非常感谢。