在Repeater中迭代控件

时间:2009-06-19 11:18:57

标签: asp.net

我有一些代码可以确定控件(在转发器中)是否应该可见,我想在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 个答案:

答案 0 :(得分:3)

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

这应该有效

答案 1 :(得分:1)

控件不是在页面加载时创建的,它们是在调用databind时创建的。如果要在创建它们时访问每个项目,请查看转发器的DataBound事件。

或者将visible属性绑定到数据源