【发布时间】:2017-11-07 01:39:35
【问题描述】:
我正在使用 boostrap 在 asp.net Web 应用程序中创建一个选项卡式菜单。
我正在使用几个中继器来设置菜单项以及标签页的内容。只有两个选项卡项,其值是从 DB 中设置的。我正在努力解决的问题是,在回发后,选定的菜单会返回到第一个菜单项。最初,我使用条件样式显示第一个选项卡。
这是选项卡式菜单:
<asp:Repeater runat="server" ID="rptCategories">
<HeaderTemplate>
<ul class="nav nav-pills ">
</HeaderTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
<ItemTemplate>
<li class="<%# Container.ItemIndex == 0 ? "nav active" : "nav" %>">
<a href='#<%# Eval("Abbrev")%>' data-toggle="tab">
<h3><%# Eval("CourseCategory")%></h3>
</a>
</li>
</ItemTemplate>
</asp:Repeater>
<!-- Tab panes -->
<div class="tab-content">
<asp:Repeater runat="server" ID="rptCategoryList" OnItemDataBound="rptCategoryList_ItemDataBound">
<ItemTemplate>
<div class="<%# Container.ItemIndex == 0 ? "tab-pane fade in active" : "tab-pane fade" %>" id='<%# Eval("Abbrev")%>'>
<div class="container" style="margin-top: 25px;">
<h2 style="color: #0F4194;" class="text-center"><%# Eval("CourseCategory")%></h2>
<div class="row">
<asp:Repeater runat="server" ID="rptCourses" OnItemDataBound="rptCourses_ItemDataBound" OnItemCommand="rptCourses_ItemCommand">
<ItemTemplate>
<div class="col-md-4">
<div class="bronze panel panel-default ">
<div class="bronze panel-body">
<h4 class="text-center"><asp:Label runat="server" id="lblCourseName" Text='<%# Eval("CourseName")%>' /></h4>
<p class="text-justify">
<%# Eval("CourseDesc")%>
</p>
</div>
<asp:LinkButton ID="lbViewVideo" runat="server"
CausesValidation="False"
CommandName="AddCourse"
CommandArgument='<%# Eval("AUCourseID") %>'
data-URL = '<%#Eval("CourseURL")%>'
data-CourseID = '<%#Eval("AUCourseID")%>'
data-CourseName = '<%#Eval("CourseName")%>'>
<i class="glyphicon glyphicon-film"></i> View the Tutorial
</asp:LinkButton>
</div>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
我可以选择带有课程列表的第二个菜单项。一旦我单击链接按钮查看视频(即回发),第一个菜单就会被选中。我可以看到这是因为菜单样式基于 Container.ItemIndex 是否为 0(样式为“nav”或“nav active”),但不知道如何绕过它。
【问题讨论】:
-
使用更新面板。
-
当我遇到这个问题时,这是我第一次尝试。没用。
标签: c# asp.net twitter-bootstrap-3 repeater