【问题标题】:Master Page menu Orientation not rendering properly on postback母版页菜单方向在回发时未正确呈现
【发布时间】:2021-01-26 04:16:22
【问题描述】:

这是一个很难描述的问题。我有一个使用母版页的网站。我基本上使用 VS 在创建项目时为您提供的母版页的默认模板。我有一个 asp:menu 的方向设置为水平。在页面顶部(在母版页中)我有一个下拉列表,允许具有多个工作角色的用户能够选择他们每次要查看的角色。当他们在下拉列表中选择不同的角色时,页面会刷新,显示该角色页面的视图。一页有相当多的数据和几个 Telerik 网格。当此页面刷新时,在加载所有内容的几秒钟内,菜单显示为垂直方向。加载网格后,菜单会水平重新绘制。我不知道为什么会这样。有人有什么想法吗?

谢谢,

朗达

<form runat="server" id="mainForm">
<div class="page">
    <div class="header">
        <div class="title">
            <table>
                <tr>
                    <td><img alt="" src="Images/logo_standard_48.gif" /></td>
                    <td><h1>WPR</h1></td>
                </tr>
            </table>
        </div>
        <div class="loginDisplay">
            <table>
                <tr>
                    <td colspan="2">Hello <span class="bold"><asp:Label ID="HeaderLoginLanID" runat="server" /> - <asp:Label ID="HeaderLoginName" runat="server" /></span>!</td>
                </tr>
                <tr>
                    <td><asp:Label ID="ChooseRoleLabel" runat="server" CssClass="LabelText">Please select role:</asp:Label></td>
                    <td><asp:DropDownList Width="150" ID="UserRolesList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="UserRolesList_SelectedIndexChanged"></asp:DropDownList></td>
                </tr>
            </table>
        </div>
        <div class="clear hideSkiplink">
            <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                <Items>
                    <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
                    <asp:MenuItem NavigateUrl="~/Portal.aspx" Text="My Portal"/>
                    <asp:MenuItem NavigateUrl="~/StartChecklist.aspx" Text="On Board Application"/>
                    <asp:MenuItem NavigateUrl="~/Search.aspx" Text="Search"/>
                    <asp:MenuItem NavigateUrl="" Text="Reports"/>
                    <asp:MenuItem NavigateUrl="~/Help.aspx" Text="Help"/>
                </Items>
            </asp:Menu>
        </div>
    </div>
    <div class="main">
        <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
    </div>
    <div class="clear">
    </div>
</div>
<div class="footer">
         © 2011 . All rights reserved. | Version: 1.0.0.0 
</div>
</form>

【问题讨论】:

  • 那将是在页面加载之后或中途运行的 Javascript
  • 我猜你回答了我问的问题。我的下一个问题是如何找到 javascript 然后修复它?
  • 我应该提一下,我没有在母版页或子页中明确调用任何 javascript。
  • JavaScript 将从您正在使用的用户控件生成。如果您查看页面的来源,您将看到它。我个人不喜欢以这种方式使用菜单控件。我建议创建您自己的基于 CSS 的菜单。使用 CSS,您不会有跳跃。如果这不是您真正想要的答案,请见谅。
  • 我按照建议做了,并使用新的 css 驱动菜单重新创建了我的菜单。问题解决了。谢谢克雷格。

标签: asp.net master-pages


【解决方案1】:

我认为 Craigs 的想法是正确的。我遇到了同样的问题,我不得不放弃普通 HTML Li 列表的“asp:menuitem”。我用了

{ 显示:内联; }

为了使它们看起来是水平的,并添加了许多其他 CSS 以获得类似的效果,幸运的是这解决了问题。

【讨论】:

    【解决方案2】:

    Craig 是正确的,我保留了 menuitem 方法,因为它绑定到 SiteMapDataSource 并利用了引导菜单。就我而言,解决方案是删除 Site.Master 上出现的一些附加 javascript 以及母版页菜单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2020-10-09
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多