ASPxMenu-单击而不是将鼠标悬停打开子菜单(dx:ASPxMenu)

时间:2018-09-21 08:07:45

标签: javascript css asp.net .net devexpress

我是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>

1 个答案:

答案 0 :(得分:2)

您可以在标记中将AppearAfter属性设置为较大的值,也可以在Page_Load后面的代码中(以毫秒为单位):

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

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

<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;

参考文献: