2009-12-09 5 views
0

J'utilise asp.net avec jquery. Dans Default.aspx, j'ai implémenté des jquery-tabs qui chargent leurs données avec un appel ajax. Ils chargent une autre page asp.net MyTab.aspx. Mon problème est que lorsque je navigue dans l'onglet (MyTab.aspx) il recharge toujours la page entière (Default.aspx entier) mais je veux seulement qu'elle se recharge dans l'onglet. Par exemple, lors de l'ajout d'un article, je veux juste que l'onglet se recharge.asp.net jquery tabs et les panneaux d'affichage

J'ai donc ajouté un panneau de mise à jour dans MyTab.aspx. Le problème est maintenant à la place que tous les liens sur Default.aspx sont cassés, il suffit d'ouvrir l'onglet sélectionné dans toute la fenêtre en cliquant. Très étrange, mais j'ai lu que parfois, il peut être difficile d'obtenir updatepanels pour travailler avec jquery.

Vous pouvez voir mon code ci-dessous, est-ce que je peux faire quelque chose de différent pour le faire fonctionner?

En Default.aspx:

<html> 
    <head runat="server"> 
     <script type="text/javascript"> 
      $(function() { 
       $('.tabs').tabs(); 
      }); 
     </script> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" /> 
     <div class="tabs"> 
      <ul> 
       <li><a href="#PanelTab">Tab0</a></li> 
       <li><a href='MyTab.aspx?type=1'>Tab1</a></li> 
       <li><a href='MyTab.aspx?type=2'>Tab2</a></li> 
      </ul> 
      <div id="PanelTab">Content0</div> 
     </div> 
    </form> 
    <body> 
<html> 

En MyTab.aspx:

<html> 
    <body> 
     <form id="formTab" runat="server"> 
      <asp:ScriptManager ID="ScriptManagerTab" runat="server" EnablePartialRendering="true" /> 
      <asp:UpdatePanel runat="server" ChildrenAsTriggers="true" ID="UpdatePanelList" UpdateMode="Always"> 
       <ContentTemplate> 
        <asp:SqlDataSource ID="DSTab" 
         runat="server" 
         DataSourceMode="DataSet" 
         ConnectionString="XXX" 
         ProviderName="MySql.Data.MySqlClient" 
         SelectCommand="XXX" 
         > 
         <SelectParameters> 
          <asp:QueryStringParameter QueryStringField="type" Name="?type" /> 
         </SelectParameters> 
        </asp:SqlDataSource> 
        <asp:GridView ID="GridViewTab" DataKeyNames="id" DataSourceID="DSTab" AutoGenerateColumns="false" runat="server" > 
         <Columns> 
          <asp:TemplateField> 
           <ItemTemplate> 
            <asp:HyperLink ID="HyperLinkTab" NavigateUrl='Item.aspx' runat="server"><%# Eval("title")%></asp:HyperLink> 
            <asp:Button OnClick="AddItem" ID="ButtonAddItem" Text="Add" runat="server" /> 

           </ItemTemplate> 
          </asp:TemplateField> 
         </Columns> 
        </asp:GridView> 
        <asp:Button OnClick="CreateNewItem" ID="ButtonCreateNewItem" Text="Create New" runat="server" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </form> 
    </body> 
</html> 

Répondre

1

Faites vos onglets en dehors du panneau de mise à jour. Cela résoudra le problème.

0
<script type="text/javascript"> 
$(function() { 
    $("#tabs").tabs({ 
     cookie: { 
      // store cookie for a day, without, it would be a session cookie 
      expires: 1 
     } 
    }); 

}); 
function pageLoad(sender, args) { 
    if (args.get_isPartialLoad()) { 
     //Dialog Code 
     $("#tabs").tabs({ 
      cookie: { 
       // store cookie for a day, without, it would be a session cookie 
       expires: 1 
      } 
     }); 


    } 
}