从代码后面 - Repeater获取页脚模板的值

时间:2010-03-03 22:07:09

标签: asp.net repeater

我有一个这样的转发器:

<asp:Repeater runat="server" ID="pde">
<HeaderTemplate></HeaderTemplate>

<ItemTemplate>
<asp:Literal runat="server" ID="literal1"></asp:Literal>
</ItemTemplate>

<FooterTemplate><asp:Literal runat="server" ID="literal2"></asp:Literal></FooterTemplate>
</asp:Repeater>

现在在literal2中我想从代码中获取值。但是我无法在代码中获取literal2。任何想法如何得到它?

2 个答案:

答案 0 :(得分:2)

您应该可以通过访问转发器中的最后一个RepeaterItem来访问它,这将是您的页脚。然后使用FindControlRepeaterItem上搜索您要查找的任何控件。

使用上面的示例执行:

Literal controlYouWant = pde.Controls[pde.Controls.Count - 1].FindControl("literal2") as Literal;

您可以将陈述细分为:

// This will get you the footer
RepeaterItem item = pde.Controls[pde.Controls.Count - 1];
// From here you finds any control you want within the RepeaterItem.
Literal controlYouWant = item.FindControl("literal2") as Literal;

答案 1 :(得分:0)

首先搜索转发器中的项目,仅获取页脚项目类型并丢弃其他项目。请查看以下代码。

foreach(RepeaterItem item in repeterName.Controls) 
{ 
    if (item.ItemType != ListItemType.Footer) continue; 
    var lblMyLabel = ((Label)item.FindControl("lblMyLabel")); 
    lblMyLabel.Text = "I found it!!!"; 
}