Ориентация меню главной страницы неправильно отображается при обратной передаче

#asp.net #master-pages

#asp.net #основные страницы

Вопрос:

Это довольно сложная проблема для описания. У меня есть сайт, который использует главные страницы. Я в основном использую шаблон по умолчанию для главной страницы, который 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>
  

Комментарии:

1. Это будет Javascript, который запускается после или частично во время загрузки страницы

2. Я думаю, вы ответили на вопрос, который я задал. Мой следующий вопрос: как мне найти javascript, а затем исправить его?

3. Я должен упомянуть, что я явно не вызываю какой-либо javascript на главной странице или дочерней странице.

4. Javascript будет сгенерирован из пользовательских элементов управления, которые вы используете. Если вы просмотрите исходный код страницы, вы увидите его. Мне лично не нравится использовать элементы управления для меню таким образом. Я бы рекомендовал создавать свои собственные меню на основе CSS. С CSS у вас не будет прыжков. Извините, если это не тот ответ, который вы искали.

5. Я сделал, как было предложено, и воссоздал свое меню с новым меню, управляемым css. Проблема решена. Спасибо, Крейг.

Ответ №1:

Я думаю, что Крейгс понял правильную идею. У меня была такая же проблема, и мне пришлось отказаться от ‘asp: menuitem’ для обычных списков HTML Li. Я использовал

{ дисплей: встроенный; }

Чтобы они выглядели горизонтально, и добавлено много других CSS для аналогичного эффекта, и, к счастью, это решило проблему.

Ответ №2:

Крейг прав, я сохранил подход menuitem, поскольку он был привязан к SiteMapDataSource и использовал меню начальной загрузки. В моем случае решением было удалить некоторые дополнительные javascript, которые появлялись на сайте.Мастер вместе с меню главной страницы