【问题标题】:ASPxMenu - Open submenu on click instead of hover (dx:ASPxMenu)ASPxMenu - 单击而不是悬停时打开子菜单 (dx:ASPxMenu)
【发布时间】:2019-02-25 14:29:00
【问题描述】:

我是 aspx 菜单的新手。在我的应用程序中,我使用了 ASPxMenu。 默认情况下,子菜单在父元素悬停时显示。 我希望仅在单击父元素时打开子菜单。 我怎么能做到这一点?请帮忙

<dx:ASPxMenu ID="" runat="server" AutoSeparators="RootOnly" AutoPostBack="true"
      ClientInstanceName="AdminMenu" SkinID="SubMenu" ItemAutoWidth="false" OnItemClick="AdminMenu_ItemClick"
                                        ItemStyle-Width="151px" SubMenuItemStyle-Width="174px" SubMenuItemStyle-HorizontalAlign="Center">
  <Items> 

<dx:MenuItem Text="Main menu" Target="~/main.aspx" Name="MainFunctions">
                                                <Items>
                                                    <dx:MenuItem Text="submenu 1" Name="submenu1" Target="~/submenu1.aspx"
                                                        Enabled="True">
                                                    </dx:MenuItem>
                                                    <dx:MenuItem Text="submenu 2" Name="submenu2" Target="~submenu12.aspx"
                                                        Enabled="True">
                                                    </dx:MenuItem>
                                                    <dx:MenuItem Text="submenu 3" Name="submenu3" Target="~/submenu13.aspx"
                                                        Enabled="True">
                                                    </dx:MenuItem>

                                                </Items>
                                            </dx:MenuItem>
  </Items>
                                    </dx:ASPxMenu>

【问题讨论】:

    标签: javascript css asp.net .net devexpress


    【解决方案1】:

    您可以从标记或Page_Load 代码隐藏(以毫秒为单位)中将AppearAfter 属性设置为较大的值:

    <dx:ASPxMenu ID="Menu1" runat="server" AutoPostBack="true" AppearAfter="1000000" ...>
    </dx:ASPxMenu>
    

    和/或使用调用ShowSubMenu函数的客户端ItemClick事件:

    <dx:ASPxMenu ID="Menu1" runat="server" AutoPostBack="true" ...>
        <ClientSideEvents ItemClick="function(s, e) { s.ShowSubMenu(e.item.indexPath); }" />
    </dx:ASPxMenu>
    

    此外,如果您想禁用悬停,请将以下 ASPxMenu.ItemStyleASPxMenu.ItemStyle.HoverStyle 更改为您自己的样式。

    注意:如果要在服务器端处理事件,需要设置e.processOnServer = true;

    参考资料:

    【讨论】:

    • 感谢您的解决方案。它工作但页面重新加载,因此子菜单会自动关闭。这是更新后的代码 可以给我一个解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    相关资源
    最近更新 更多