asp.net子菜单项在Android设备上消失

时间:2013-05-29 19:30:43

标签: android asp.net menu

在2个单独的Web应用程序中,一个使用带有vs2008的asp.net 3.5和带有vs2010的4.0,asp.net菜单的子菜单项仅在android浏览器上消失。当点击主菜单项时,孩子会闪烁一瞬间然后消失。

菜单的编辑版本如下:

<asp:Menu ID="MainMenuEmp" runat="server" CssClass="menuASP" Orientation="Horizontal" DynamicHorizontalOffset="0" 
                        StaticDisplayLevels="1" StaticEnableDefaultPopOutImage="false" DynamicVerticalOffset="1" visible="false" 
                        > 
                       <StaticMenuitemStyle CssClass="menuitemASPStatic" /> 
                       <StaticHoverStyle    CssClass="menuASPStaticHover" />
                       <StaticSelectedStyle CssClass="menuASPStaticHover" /> 
                       <DynamicMenuStyle CssClass="menuASPDynamicMenuStyle" />
                       <DynamicMenuitemStyle CssClass="menuitemASPDynamic" /> 
                       <DynamicHoverStyle CssClass="menuASPDynamicHover" />
                       <DynamicSelectedStyle CssClass="menuASPDynamicHover" /> 
                       <Items>
                           <asp:MenuItem Text="HISTORY" Value="@" navigateurl="~/clientpages/jobhistory.aspx" />
                            <asp:MenuItem Text="NEW ORDER" Value="@" navigateurl="~/clientpages/newjob.aspx"  />
                            <asp:MenuItem Text="CLIENT INFO" Value="@" navigateurl="~/clientpages/clientinfo.aspx"  />
                            <asp:MenuItem Text="MGMT" Value="@"  Selectable="false"  >
                                <asp:MenuItem Text="Inspections" Value="@" navigateurl="~/clientpages/MgrInspection.aspx" />
                                <asp:MenuItem Text="Tasks" Value="@" navigateurl="~/clientpages/MgrInspectionStatus.aspx"/>
                                <asp:MenuItem Text="Last Vehicle Inspection" Value="@" navigateurl="~/clientpages/MgrInspectionVehicle.aspx"/>
                            </asp:MenuItem >
                            <asp:MenuItem Text="JOB MGMT" Value="@" navigateurl="~/clientpages/jobdailyview.aspx"/>
                       </Items>
                    </asp:Menu>

部分css如下:(需要z-index才能让子菜单显示在其他浏览器上)。

.menuASPDynamicMenuStyle
{
    z-index: 999; /*padding: 4px 0 3px 0;*/
    padding: 0;
    margin-top: 1px; 
    background-color: #F8F8F8;
}

菜单位于主页上,页面上有toolscriptmanager。

以下代码位于masterpage的init事件中:

If Request.ServerVariables("http_user_agent").IndexOf("Safari", StringComparison.CurrentCultureIgnoreCase) <> -1 Then
                Page.ClientTarget = "uplevel"
            End If

这也是让儿童菜单在其他浏览器上显示的必要条件。我试过了:

page.clienttarget = "uplevel"

没有条件,但是,这不起作用。

我也试过添加一个Android浏览器文件,但是,这不起作用。

我已经在网上搜了几天了。有几个类似的问题,但没有答案。有没有人有同样的问题?菜单工作正常,例如,chrome,ff,safari,ipad,但是,不是在Android移动设备上而不是在Android平板电脑上。

3 个答案:

答案 0 :(得分:0)

Android上没有悬停,但是如果我按住父菜单,我的asp菜单就可以了。可悲的是,当我按住它时,我也会得到浏览器菜单。您必须设计一个菜单,只需单击即可打开子项。使用asp菜单无法做到这一点。

答案 1 :(得分:0)

菜单没有消失,但页面正在回发..

只需将navigateUrl属性设置为&#39; javascript:return false&#39;

答案 2 :(得分:0)

我找到了解决这个问题的方法。

要么

document.body.setAttribute('onclick', 'setTimeout(function () { }, 0);');

在启动脚本中

或让身体标签看起来像这样

<body onclick="setTimeout(function () { }, 0);">

然后它适用于Android。我还没有在其他iPhone上测试过。

(我还尝试了一些更常规的方法来添加这个虚拟脚本,但它没有用。)