我是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>
答案 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.ItemStyle
和ASPxMenu.ItemStyle.HoverStyle
更改为您自己的样式。
注意:如果要在服务器端处理事件,则必须设置e.processOnServer = true;
。
参考文献: