2010-11-09 36 views
0

假设我有一个asp:Repeater,用于显示名称和电话号码列表。如何访问asp:Repeater中的当前记录?

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

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

回答

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); 
} 
+0

WOW!这是令人费解的!是否真的没有简单的方法来引用我的asp代码中的数据源中的当前记录? – 2010-11-09 19:56:17

+0

没有。数据源在下一个回传中不存在。只是直放站的物品。 – David 2010-11-09 20:49:19

相关问题