通过使用中继器的动态菜单

时间:2017-08-22 18:56:54

标签: c# asp.net .net-4.0 repeater

我正在使用转发器来创建菜单(Bootstrap样式)。我需要最初使第一个项目处于活动状态,并且无法弄清楚如何。这就是我所拥有的:

<!-- Nav tabs -->
<ul id="teamTab" class="nav nav-pills pill-marg" role="tablist">
    <asp:Repeater runat="server" ID="rptMenu">
        <ItemTemplate>
            <li role="presentation">
                <a class="circular" href='#<%# DataBinder.Eval(Container.DataItem, "GroupAbbrev") %>' aria-controls="home"
                        role="tab" data-toggle="tab"><%# String.Format("{0}", Eval("GroupName").ToString().ToUpper()) %></a>
            </li>
        </ItemTemplate>
    </asp:Repeater>
</ul>

要使第一个菜单项处于活动状态,其样式必须为&#34;活动&#34;,如:

<li role="presentation" class="active"><a class="circular" ...>

1 个答案:

答案 0 :(得分:1)

我认为您可以在转发器模板中添加<%# Container.ItemIndex == 0 ? "active circular" : "circular" %>(但由于我使用了WebForms,因此

示例:

<!-- Nav tabs -->
<ul id="teamTab" class="nav nav-pills pill-marg" role="tablist">
    <asp:Repeater runat="server" ID="rptMenu">
        <ItemTemplate>
            <li role="presentation" class="<%# Container.ItemIndex == 0 ? "active" : "" %>">
                <a class="circular" href='#<%# DataBinder.Eval(Container.DataItem, "GroupAbbrev") %>' aria-controls="home"
                        role="tab" data-toggle="tab"><%# String.Format("{0}", Eval("GroupName").ToString().ToUpper()) %></a>
            </li>
        </ItemTemplate>
    </asp:Repeater>
</ul>

除了语法问题(如果我有),我知道索引可以通过ItemIndex获得,请参阅文档here