2012-01-10 6 views
0

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

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

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

Спасибо.

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

<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"> 
+0

Пожалуйста развесить ваши пункты меню, код – Curt

+0

Поместите UpdatePanel внутри вас Содержание управления на ASPX страниц. – Lloyd

+0

@ Lloyd Я пробовал этот путь, но к сожалению, это не изменило результат, но спасибо. –

ответ

3

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

<asp:updatepanel ID="Updatepanel1" runat="server"> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="NavigationMenu" 
       EventName="MenuItemClick" /> 
     </Triggers> 
     <ContentTemplate> 
      <asp:ContentPlaceHolder ID="MainContent" runat="server" /> 
     </ContentTemplate> 
    </asp:updatepanel> 
+0

Спасибо. это работает сейчас. BUt, я не мог ничего понять. когда я просматриваю страницу с помощью firefox, она всегда возвращает асинхронно, но в хроме иногда все обратные страницы. Вы не знаете, почему это так? –

+1

@ Ozgur Tmp: Посмотрите на статью [this] (http://blog.turlov.com/200/2009/01/aspnet-ajax-compatibility-patch-for.html), чтобы узнать, связано ли это с вашей проблемой. –

Смежные вопросы