ASP:菜单子项保持可见

时间:2014-11-17 08:54:43

标签: html css asp.net menuitem aspmenu

首先,我想说我仍然认为这个网站有最好的答案。这一年帮助了我很多。基本上,我到处寻找但是空洞。

好的,我会尽量保持这个尽可能简单:

  1. 我有一个ASP:菜单,可以从数据库中检索数据。这包括其父母和与id相关的子女。
  2. 然后将其添加到递归方法中,该方法创建菜单项,将子项添加到正确的父项。 - 还在这里。效果很好。
  3. 然后它会填充我在网页上插入的asp:menu控件。 - 这里也很好。
  4. 然后在添加项目之后,asp:菜单显示它可能会添加得很漂亮。所以我在这里也很好。
  5. 下一部分是主要问题:

    经历了3天的痛苦之后,我尝试做最简单的事情,但绝对没有用:显示父母的所有孩子项目(意思是所有的父母和#39 ;孩子们)没有将鼠标悬停在父母 AND 上而不使用Javascript。对于ASP.Net背后的代码,只有纯CSS和HTML以及C#。

    我想要以下内容:

    • 来自:

      nav > ul > li:hover > div{ display: block; opacity: 1; visibility: visible; }

    • nav > ul > li > div{ display: block; opacity: 1; visibility: visible; }

    上面的示例代码基本上意味着需要在父项上无悬停才能显示子项。所以,简而言之,我需要类似于我的asp:菜单父母和孩子。我只有 1 级别的孩子。这意味着我的孩子没有孩子。 1父母有多个孩子,就是这样。然后它会转移给其他父母和孩子。

    以下是我拥有的数据结构示例:

    • 公司

      | ---关于我们

      | ---服务

      | ---演示文稿

      | ---客户

    • 产品

      | ---商业

      | ---住宅

    这是我拥有的asp:menu的代码:

    <asp:Menu ID="uxLiteral1" Orientation="Horizontal" runat="server"
    OnMenuItemClick="Bottom_Click" SkipLinkText=""
    StaticEnableDefaultPopOutImage="False" IncludeStyleBlock="False"/>
    

    据我了解,这可以通过CSS完成,但此时,我会尽我所能。

    我为这篇长篇文章道歉,并且提前非常感谢你!!

    P.S。:我已经查看了StaticDisplayLevels属性,并且没有将它们添加到彼此之下。所以这对我不起作用。我愿意使用任何其他控件来完成工作。

    修改: 这是我发现的asp代码的CSS代码:菜单生成自己的代码应该显示菜单所包含的项目,但目前它似乎无法正常工作。

    .FooterDetails > .Square > #BotMenu1_UpdatePanel1 > #BotMenu1_uxLiteral1 > ul.static { font-weight: bold; }

    .FooterDetails > .Square > #BotMenu1_UpdatePanel1 > #BotMenu1_uxLiteral1 > ul.static > li.static > ul.dynamic > li.dynamic > a.dynamic { font-weight: normal; visibility: visible !important; padding-right: 25px; margin-bottom: 3px; }

    静态类是第一个项目,即我的项目的标题以及父项目。在这种情况下,它将是&#34;公司&#34;和&#34;产品&#34;。

    动态类是静态类所包含的子类。

1 个答案:

答案 0 :(得分:0)

经过另一天努力想出这个问题之后,答案似乎很简单。

给asp:menu一个新的css类:

<asp:Menu ID="uxLiteral1" runat="server" CssClass="FooterMenu" Orientation="Horizontal"     IncludeStyleBlock="false" StaticEnableDefaultPopOutImage="False"     OnMenuItemClick="NavigationMenu_MenuItemClick" DisappearAfter="0" />

然后会更改CSS,以便菜单及其所有项目仅链接到以下CSS:

div.FooterMenu
{
    align-content: center !important;
}

div.FooterMenu ul
{
    list-style: none;
    display: inline-block !important;
}

    div.FooterMenu ul li
    {
        padding-right: 65px;
        margin-bottom: 3px;
    }

这样可以显示每个父级显示所有子项的所需效果,而不会任何悬停效果。再一次,我觉得自己是真正的MVP。