如何访问asp:Repeater中的当前记录?

时间:2010-11-09 19:46:47

标签: asp.net

假设我有一个asp:Repeater,用于显示姓名和电话号码列表。

<asp:Repeater runat="server">
 <ItemTemplate>
  <p><%# Eval("name") %></p>
  <p><%# Eval("phoneNumber") %></p>
 </ItemTemplate>
</asp:Repeater>

现在,让它变得更有趣。假设每个名字有一个或多个电话号码。我觉得我可以在转发器中使用转发器来重复电话号码。我也可以在我的asp代码中使用for循环。但是,Eval函数是我知道在运行时访问当前记录的唯一方法,Eval只返回一个字符串,只在&lt;%#Eval(“X”)%&gt;中运行。如何获取当前记录成员的电话号码列表?

1 个答案:

答案 0 :(得分:1)

首先,改变

<%# Eval("name") %>

<asp:Label runat="server" id="lblName" Text='<%# Eval("name") %>'></asp:Label>

然后在代码隐藏中你可以使用FindControl()

foreach (RepeaterItem currentItem in Repeater1.Items)
{
    Label l = (Label)currentItem.FindControl("lblName");

    // Now you can access it as you would any other label.
    Response.Write(l.Text);
}