Utilizing a radmenu, I am able to dynamically generate a submenu structure by examining folders in sharepoint document libraries. However, when placing multiple controls on the page, the root menu from other controls overlaps with the submenu of the current control. Is there a way to prevent this issue by programmatically adjusting the z-index
style for the sub menus? Refer to the attached file for a clearer understanding of the problem (sanitized for public viewing).
Additional Information: Upon hovering over the menu and displaying the subitems, they cover other menus correctly without showing through. But upon a second hover, it seems like the issue occurs as if its z-index
is higher.
Are these controls each within their own webparts affecting the behavior? Could they be inheriting z-index
properties?
This anomaly appears only in Internet Explorer, and not in Chrome or Firefox.
The CSS classes mentioned are applied programmatically in code to both the root item and submenu items within my ascx:
<style type="text/css">
.CustomItem
{
z-index:99999;
}
.rootItem
{
text-align:center !important;
text-decoration:none !important;
z-index:-1;
}
.CustomItem:hover
{
text-decoration:none !important;
}
</style>
<div id="section" runat="server" >
<telerik:RadMenu ID="FolderMenu" runat="server">
</telerik:RadMenu>
An update: While initially reported in IE, I have reproduced the bug in the Chrome browser as well. It seems to be an error specific to radmenu, where IE simply accelerates the occurrence of the bug. Below is an example showcasing the issue which can be easily replicated, along with a video demonstrating how the z-index affects the display.
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server" />
<style type="text/css">
.CustomItem
{
position:relative;
text-align:center !important;
text-decoration:none !important;
/* z-index:0 !important;*/
top: 0px;
left: 0px;
}
/* .rootItem
{
position:relative;
text-align:center !important;
text-decoration:none !important;
}*/
.CustomItem:hover
{
position:relative;
text-decoration:none !important;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<telerik:RadScriptManager ID="RadScriptManager1" runat="server">
<Scripts>
<%--Needed for JavaScript IntelliSense in VS2010--%>
<%--For VS2008 replace RadScriptManager with ScriptManager--%>
<asp:ScriptReference Assembly="Telerik.Web.UI, Version=2010.1.309.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Name="Telerik.Web.UI.Common.Core.js, Version=2010.1.309.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" />
<asp:ScriptReference Assembly="Telerik.Web.UI, Version=2010.1.309.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Name="Telerik.Web.UI.Common.jQuery.js, Version=2010.1.309.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" />
<asp:ScriptReference Assembly="Telerik.Web.UI, Version=2010.1.309.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" Name="Telerik.Web.UI.Common.jQueryInclude.js, Version=2010.1.309.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4" />
</Scripts>
</telerik:RadScriptManager>
<script type="text/javascript">
//Put your Java Script code here.
</script>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
</telerik:RadAjaxManager>
<div>
<telerik:RadMenu runat="server" ID="FolderMenu" cssclass="CustomItem" >
<Items>
<telerik:RadMenuItem Text="Item1" >
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
</Items>
</telerik:RadMenu>
<br />
<telerik:RadMenu runat="server" ID="RadMenu1" cssClass="CustomItem">
<Items>
<telerik:RadMenuItem Text="Item1" >
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
</Items>
</telerik:RadMenu> <br />
<telerik:RadMenu runat="server" ID="RadMenu2" cssClass="CustomItem">
<Items>
<telerik:RadMenuItem Text="Item1" >
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
</Items>
</telerik:RadMenu>
<br />
<telerik:RadMenu runat="server" ID="RadMenu3" cssClass="CustomItem">
<Items>
<telerik:RadMenuItem Text="Item1" >
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
<Items>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
<telerik:RadMenuItem Text="sub item1">
</telerik:RadMenuItem>
</Items>
</telerik:RadMenuItem>
</Items>
</telerik:RadMenu>
</div>
</form>
Refer to the screen capture video linked below illustrating how the z-index causes problems: http://youtu.be/oOdJY65l6AA