假设我有一个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;中运行。如何获取当前记录成员的电话号码列表?
答案 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);
}