首页 新闻 会员 周边

关于repeater控件的讨论。

0
悬赏园豆:5 [已解决问题] 解决于 2014-10-28 11:05

大家都知道,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值给提取出来,应该如何实现?
在线等。
晓晓辰辰的主页 晓晓辰辰 | 初学一级 | 园豆:197
提问于:2014-10-28 09:42
< >
分享
最佳答案
1

把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")]值了

收获园豆:5
Chaoa | 小虾三级 |园豆:643 | 2014-10-28 10:04

这样确实可以提取,不过希望所有button点击的时候不会只提取第一个lable的值。

晓晓辰辰 | 园豆:197 (初学一级) | 2014-10-28 10:46

@hello c#!: RepeaterItem 是Repeater的一项 即 该行的button点击会获取该行的lable的值(类似一对一的对应) 并不是取Repeater的第一个lable控件值 

Chaoa | 园豆:643 (小虾三级) | 2014-10-28 10:51

@Chaoa: 非常感谢。

晓晓辰辰 | 园豆:197 (初学一级) | 2014-10-28 11:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册