【问题标题】:Boostrap tabbable tab-pane not workingBootstrap 可选项卡窗格不起作用
【发布时间】:2016-01-28 18:35:41
【问题描述】:

在 .aspx 页面中,我有 2 个选项卡:Acct 和 HR。

在后面的代码中我有这些条件:

  • 如果用户是Acct,则仅显示Acct 标签(隐藏 HR 标签和导航)
  • 否则,如果用户是 HR,则仅显示 Hr 选项卡(隐藏帐户选项卡和导航)
  • 否则(如果用户不是 Acct 和 Hr)则同时显示选项卡和导航菜单(我希望 Acct 将是 active 第一个)

所以案例 #1 和案例 #2 工作正常。

但是案例 #3(需要同时显示选项卡和导航以及所有内容),我遇到了问题:导航 (li) 工作正常(当我单击它时,它确实显示正确的 CSS),但是标签(内容)始终显示 Acct 标签,当我点击 HR li

时不会更改为 HR 标签

这里是案例 #3 的图片,所以在 page_load() 代码中我设置它首先显示 Acct 选项卡:

当我切换到 HR 标签时,导航菜单发生了变化,但内容标签保持不变:

反之亦然,如果我将 HR 设置为 active ,那么当我切换到 Acct 时,它不会显示 Acct 标签内容,继续显示 HR 的标签内容

这里是标记代码和 C# 代码:

<div class="tabbable tabbable-custom">
                <ul class="nav nav-tabs" style="margin-bottom: 0px">
                    <li style="width: 50%" id="liAcct" runat="server"><a class="no-margin" href="#tabAcct" data-toggle="tab">
                        <h3 class="text-center no-margin bold text-success">ACCT</h3>
                    </a></li>
                    <li style="width: 50%" id="liHR" runat="server"><a class="no-margin" href="#tabHR" data-toggle="tab">
                        <h3 class="text-center no-margin bold text-primary" style="margin-left: 20px !important">HR</h3>
                    </a></li>
                </ul>

                <div class="tab-content" style="border: 1px solid #ddd; border-top: none; padding: 5px">

                    <!-- BEGIN ACCT TAB -->
                    <div class="tab-pane" id="tabAcct" runat="server">

                        <asp:Panel ID="panelAcct" runat="server">
                            <h1>This is Acct content</h1>
                        </asp:Panel>

                    </div>
                    <!-- END TAB -->

                    <!-- BEGIN HR TAB -->
                    <div class="tab-pane" id="tabHR" runat="server">

                        <asp:Panel ID="panelHR" runat="server">
                            <h1>This is HR content</h1>
                        </asp:Panel>

                    </div>
                    <!-- END TAB -->

                </div>
            </div>

在 page_load() 中:

if (!IsPostBack)
            {
                Page.Title = "Page";
                string managerEmail = HttpContext.Current.User.Identity.Name.ToLower();
                if (requestDAL.GetManagerLevel_byEmail(managerEmail) <= 1)
                {
                    // Shows HR tab
                    liHR.Attributes["class"] = "active";
                    tabHR.Attributes["class"] = "tab-pane active";

                    // Hide Acct tab
                    liAcct.Visible = false;
                    liAcct.Visible = false;
                    panelAcct.Visible = false;

                }
                else if (requestDAL.GetManagerLevel_byEmail(managerEmail) == 2)
                {
                    // Shows ACCT tab
                    liAcct.Attributes["class"] = "active";
                    tabAcct.Attributes["class"] = "tab-pane active";

                    // Hide HR tab
                    liHR.Visible = false;
                    liHR.Visible = false;
                    panelHR.Visible = false;
                }
                else
                {
                    liAcct.Attributes["class"] = "active";
                    tabAcct.Attributes["class"] = "tab-pane active";

                }

            }

【问题讨论】:

  • 默认启用HR时会发生什么? nav li 是否适用于 Acct
  • @Shaharyar 同样的事情,如果我先激活 HR,那么 nav li 适用于 Acct 但不显示 Acct 的选项卡内容,仅显示 HR 内容。
  • 浏览器控制台有错误吗?
  • @Shaharyar 点击前后没有错误。
  • 我在 jsfiddle 中试过你的代码,它在那里工作得很好。尝试将href 替换为data-target 并再次检查。

标签: c# jquery asp.net twitter-bootstrap tabpanel


【解决方案1】:

Asp.net 在客户端更改所有服务器端控件 ID。您只需要使用 ClientID 来获取正确的标记 ID:

<a class="no-margin" href="#<%= tabAcct.ClientID %>" data-toggle="tab">

<a class="no-margin" href="#<%= tabHR.ClientID %>" data-toggle="tab">

【讨论】:

  • 我还有一个小问题:当我点击导航菜单/标题时,为什么 url 不显示哈希(例如:#tabAcct 或 #tabHR),因为我想知道哪个选项卡当前处于活动状态,以便我可以在postback event orrcuring 时检索它
猜你喜欢
  • 2018-07-08
  • 2018-12-23
  • 1970-01-01
  • 2019-11-15
  • 2015-06-27
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多