ContentPlaceHolder в UpdatePanel - PullRequest
       32

ContentPlaceHolder в UpdatePanel

0 голосов
/ 10 января 2012

У меня очень простой веб-сайт asp .net с поддержкой ajax и мастер-страницей.У меня есть меню на главной странице, а другие страницы появляются в заполнителе MainContent.У меня есть следующий код. Но когда я нажимаю на пункты меню, я вижу, что иногда постбэки страниц.

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
   <ContentTemplate>
       <asp:ContentPlaceHolder ID="MainContent" runat="server" />
   </ContentTemplate>

Как я могу предотвратить обратную передачу и частичную загрузку страницы?Я искал stackoverflow, но все решения такие же, как я делаю, насколько я вижу.Есть ли что-то, что мне нужно сделать?

Спасибо.

Редактировать: полная страница с пунктами меню выглядит следующим образом:

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div class="page">
    <div class="header">
        <div class="title">
            <h1>
                App</h1>
        </div>
        <div class="loginDisplay">
        </div>
        <div class="clear hideSkiplink">
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <asp:Menu ID="NavigationMenu" runat="server" EnableViewState="false" IncludeStyleBlock="false"
                Orientation="Horizontal" Font-Size="Large" Height="48px" Width="100%" BorderStyle="Dashed">
                <Items>
                    <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home Page" />
                    <asp:MenuItem NavigateUrl="~/DefinePropertyType.aspx" Text="Define PropertyType" />
                    <asp:MenuItem NavigateUrl="~/CreateProperty.aspx" Text="Create Property" />
                    <asp:MenuItem NavigateUrl="~/RiskManagemet.aspx" Text="Risk Managemet" />
                    <asp:MenuItem NavigateUrl="~/InsurancePolicy.aspx" Text="InsurancePolicy" />
                    <asp:MenuItem NavigateUrl="~/Damage.aspx" Text="Damage" />
                </Items>
                <StaticMenuItemStyle ItemSpacing="20px" />
            </asp:Menu>
        </div>
    </div>
    <div class="main">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always"> 
            <ContentTemplate>
                <asp:ContentPlaceHolder ID="MainContent" runat="server" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    <div class="clear">
    </div>
</div>
<div class="footer">

1 Ответ

3 голосов
/ 10 января 2012

Вам необходимо определить элемент управления Menu как асинхронный триггер обратной передачи панели обновления. Попробуйте это

    <asp:updatepanel ID="Updatepanel1" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="NavigationMenu" 
                EventName="MenuItemClick" />
        </Triggers>
        <ContentTemplate>
             <asp:ContentPlaceHolder ID="MainContent" runat="server" />
        </ContentTemplate>
    </asp:updatepanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...