J'utilise asp.net et jquery. Dans Default.aspx, j'ai implémenté quelques 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 complète (Default.aspx) mais je veux qu'il recharge seulement à l'intérieur de l'onglet. Par exemple, lorsque j'ajoute un élément, je veux juste que l'onglet soit rechargé.
J'ai donc ajouté un panneau de mise à jour à l'intérieur de MyTab.aspx. Le problème est que maintenant tous les liens sur Default.aspx sont cassés, ils ouvrent juste l'onglet sélectionné dans la fenêtre entière lorsqu'on clique dessus. C'est très étrange, mais j'ai lu qu'il était parfois difficile de faire fonctionner les updatepanels avec jquery.
Vous pouvez voir mon code ci-dessous. Y a-t-il quelque chose que je puisse faire différemment pour que cela fonctionne ?
Dans 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>
Dans 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>