如何只使项目模板不可见?

时间:2012-01-05 12:13:04

标签: asp.net

我想在我的代码后面添加一个if语句,只使我的转发器中的项模板不可见,我可以这样做吗?

    <asp:Repeater runat="server" ID="Repeater_CategoryMenu">
        <HeaderTemplate>
            <div id="productCategory">
        </HeaderTemplate>
        <ItemTemplate>
            hey
        </ItemTemplate>
        <FooterTemplate>
            </div>
        </FooterTemplate>
    </asp:Repeater>

以下代码使整个转发器不仅仅隐藏了项目模板..

Repeater_CategoryMenu.Visible = false;

2 个答案:

答案 0 :(得分:2)

  1. 将转发器绑定到空集合

  2. 在OnDataBinding

  3. 中使转发器内的控件不可见

答案 1 :(得分:1)

您必须处理ItemDataBound事件,因此请先在Page_Load中填写此行:

Repeater_CategoryMenu.ItemDataBound += new RepeaterItemEventHandler(Repeater_CategoryMenu_ItemDataBound);

然后这样的方法:

void Repeater_CategoryMenu_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item != null && (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem))
    {
        if (some_condition_here)
        {
            e.Item.Visible = false;
        }
    }
}