我有一个这样的转发器:
<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。任何想法如何得到它?
答案 0 :(得分:2)
您应该可以通过访问转发器中的最后一个RepeaterItem
来访问它,这将是您的页脚。然后使用FindControl
在RepeaterItem
上搜索您要查找的任何控件。
使用上面的示例执行:
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!!!";
}