2010-10-14 4 views
0

Я использую C#, Ajax для кодирования.Как остановить обратную передачу страницы с помощью updatepanel

См. Ниже код, который я использую для реализации ajax.

<div id="column2Container"> 
      <ajax:ScriptManager ID="ScriptManager1" runat="server"> 
      </ajax:ScriptManager> 
      <div id="column2"> 
       <ajax:UpdateProgress ID="uprogDestinationsTabs" runat="server" AssociatedUpdatePanelID="upDestinationTabs"> 
        <ProgressTemplate> 
         <span style="display: block; text-align: center"> 
          <p style="font-family: Verdana; font-size: larger; font-weight: bold;"> 
           <img src="/Images/ajax-loader-circle-thickbox.gif" alt="Processing..." /><br /> 
           <br /> 
           Processing...</p> 
         </span> 
        </ProgressTemplate> 
       </ajax:UpdateProgress> 
       <ajax:UpdatePanel ID="upDestinationTabs" runat="server" RenderMode="Inline" UpdateMode="Conditional"> 
        <ContentTemplate> 
         <CCIT.Web:DestinationTabs runat="server" /> 
        </ContentTemplate> 
       </ajax:UpdatePanel> 
      </div> 
</div> 

На самом деле, что я пытаюсь сделать, это то, что вы можете увидеть, есть .net UserControl используется внутри UpdatePanel, т.е. <CCIT.Web:DestinationTabs runat="server" /> этот пользовательский элемент управления будет оказывать ниже HTML

<ul class="tabHead tabs-nav"> 
    <li class="tabLeftEnd"></li> 
    <li id="tab-1"> 
    <a class="load-fragment" href="/english/destinations_offers/destinations/asiapacific/india/newdelhi/index.aspx"><span>Overview</span></a> 
    </li> 
    <li class="tabs-selected" id="tab-2"> 
    <a href="/english/destinations_offers/destinations/asiapacific/india/newdelhi/guide.aspx"><span>Guide</span></a> 
    </li> 
    <li id="tab-3"> 
    <a href="/english/destinations_offers/destinations/asiapacific/india/newdelhi/flightschedule.aspx"><span>Flight Schedule</span></a> 
    </li> 
    <li id="tab-4"> 
    <a href="/english/destinations_offers/destinations/asiapacific/india/newdelhi/specialOffers.aspx"><span>Special Offers</span></a> 
    </li> 
    <li id="tab-5"> 
    <a class="load-fragment" href="/english/destinations_offers/destinations/asiapacific/india/newdelhi/photo.aspx"><span>Photos</span></a> 
    </li> 
    <li class="tabRightEnd"></li> 
</ul> 

Теперь я пытаюсь сделать так, чтобы когда пользователь щелкнул любую из этих ссылок, которые должны обрабатываться с Ajax, я имею в виду, что при загрузке этих страниц не было бы никакой обратной записи страницы, то есть, почему я пытаюсь использовать панель обновления.

Просьба указать, что не так в вышеупомянутой реализации ajax, поскольку приведенный выше код не работает для меня.

Спасибо.

С наилучшими пожеланиями, MS

ответ

1

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

Наличие ссылок в обновленной панели не предотвратит обновление экрана или «мерцание» при переходе пользователя на новую страницу. Единственный раз, когда это повлияло бы на то, что вы вызываете обратную передачу (например, нажав кнопку).

Единственный способ предотвратить обновление экрана при навигации со страницы на страницу - это получить содержимое страницы с помощью AJAX (а не панели обновления) и загрузить ее в div.

Вы можете использовать функцию загрузки Jquery, чтобы сделать это:

1) Добавить ссылку на JQuery на страницу

<script src="<%=ResolveUrl("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript" /> 

2) Добавить DIV на страницу под названием под названием divContent

<div id="divContent"></div> 

3) Добавьте этот бит javascript на свою страницу

<script type="text/javascript"> 
    function LoadPage(url) { 
     $('#divContent').load(url, 'divContent'); 
    } 
</script> 

4) Сделайте ваши ссылки выглядят следующим образом:

<a href="javascript: LoadPage('path/to/page.aspx');"><span>Guide</span></a> 
+0

Нет, это не пост обратно точно. –

+0

Большое спасибо @keviv за ваши предложения, я уже пробовал над jquery логикой на моей странице, но это заняло больше времени при загрузке, так что я пытался использовать ajax updatepanel, чтобы избежать загрузки страницы, можете ли вы предложить, как я могу достичь этого? используя updatepanel, чтобы вся страница не загружалась, так как у меня также есть .net usercontrol на страницах –

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