在 Repeater 中迭代控件

4
我有一段代码,它可以确定一个重复器内的控件是否可见。我想在 Page_Load 中调用它,但似乎无法获取重复器内的控件。
<asp:Repeater ID="repreat" runat="server" >
        <HeaderTemplate>
            <asp:PlaceHolder runat="server" ID="thActivePrimary">Blah</asp:PlaceHolder>
            <asp:PlaceHolder runat="server" ID="PlaceHolder1">Blah</asp:PlaceHolder>
        </HeaderTemplate>
        <ItemTemplate>
            <asp:PlaceHolder runat="server" ID="trActivePrimary">Blah</asp:PlaceHolder>
            <asp:PlaceHolder runat="server" ID="thActivePrimary2">Blah</asp:PlaceHolder>
        </ItemTemplate>              
</asp:Repeater>    

repreat.Controls始终为空。

我该如何实现这个目标?

2个回答

3
    foreach (RepeaterItem ri in repeat.Items)
         ri.FindControl("thActivePrimary").Visible = false;

这应该可以工作。


1

控件不是在页面加载时创建的,而是在调用数据绑定时创建的。如果您想在创建每个项目时访问它们,请查看重复器的DataBound事件。

或将可见属性绑定到您的数据源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接