在主页面上使用时,ASP.Net菜单控件呈现错误

时间:2009-05-20 14:26:06

标签: asp.net master-pages menu

当与Master Page结合使用时,我很难找到ASP.Net Menu控件的奇怪问题的解决方案。

当用户导航到某个页面时 - 通过。菜单 - 继承自母版页,整个菜单只是在屏幕上展开和闪烁。立即折叠,页面呈现.... 导致屏幕上出现一些闪烁,使用户感到烦恼。

现在,为此建议了一些解决办法: - 从web.config中注释掉标记。 - 在其Page_Load事件中为主页提供ID。 尝试了所有,似乎没有解决我的问题:(。 我会接受任何想法。

-HK

6 个答案:

答案 0 :(得分:1)

我记得在我的网站的某个地方看到过这一点。从那以后我把菜单撕掉了,但把它放回到我的母版页中,我再也看不到闪烁了。这是一个简单菜单的代码,在母版页中没有闪烁;

<asp:Menu ID="menu" 
    DataSourceID="sitemap" 
    runat="server" />
<asp:SiteMapDataSource 
    ID="sitemap" 
    ShowStartingNode="false" 
    runat="server" />

我自己没有尝试过,但如何将菜单子项的默认类设置为不可见(例如,invisibleMenu类),这意味着它最初无形地加载,然后使用一些javascript来删除不可见?在jQuery中,类似

$('.invisibleMenu').removeClass('invisibleMenu');

答案 1 :(得分:0)

如果我记得,我有同样的问题,并将菜单放在amster页面的内容占位符中解决它:

<asp:ContentPlaceHolder ID="MenuZone" Runat="server">
   <asp:TreeView ID="TreeView1" Runat="server" DataSourceID="dsSiteMap" ImageSet="Simple"
                    NodeIndent="10" MaxDataBindDepth="3" ExpandDepth="0" OnTreeNodePopulate="TreeView1_TreeNodePopulate">
       <SelectedNodeStyle Font-Underline="True" ForeColor="#DD5555" HorizontalPadding="0px" VerticalPadding="0px"></SelectedNodeStyle>
       <NodeStyle Font-Names="Verdana" Font-Size="8pt" HorizontalPadding="0px" ForeColor="Black" NodeSpacing="0px" VerticalPadding="0px"></NodeStyle>
       <HoverNodeStyle Font-Underline="True" ForeColor="#DD5555"></HoverNodeStyle>
       <ParentNodeStyle Font-Bold="False" />
   </asp:TreeView>
   <asp:SiteMapDataSource ID="dsSiteMap" Runat="server" ShowStartingNode="False" />

并且不在嵌套页面中覆盖此占位符。

答案 2 :(得分:0)

如果知道你的问题 在主页面上使用时,ASP.Net菜单控件呈现错误 如果asp.net菜单不起作用,那么使用usercontrol而不是母版页,因为我们可以通过easy wasy使用用户控件。

答案 3 :(得分:0)

将菜单添加到ASCX页面或其自己的母版页,并将其包含在主母版页中。我自己从未遇到过这个问题,但发生了类似的事情。

答案 4 :(得分:0)

如果其他人再次遇到此问题,我在另一个Stack Overflow线程上解决了我的问题:

How to get rid of ugly asp:Menu flickering?

答案 5 :(得分:0)

同样的问题也与我同在。但通过删除jquery调用解决了。 :) 或者您可以将.js脚本文件下载并保存在脚本文件夹中,而不是从在线引用它。