Tengo un problema con el updatepanel de ASP.NET AJAX. El caso es que cuando hago el primer postback asíncrono desde un botón dentro de un Update panel me borra los valores de las variables Javascript, como si hiciera un Postback completo, el caso es que las siguientes veces funciona bien y me mantiene los valores.
Os dejo una página de prueba con un par de pestañas con un botón que suma 5 a una variable en JavaScript y en la otra pestaña un Updatepanel con un botón que hace un async Postback. Alguien sabe que puede estar pasando? O como solucionarlo, después de mirar mucho por internet no encuentro nada que me sirva.
Código:
Un saludo <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript" language="javascript"> var i = 4; var a; function sumar5() { i = i + 5; a = 'Esto es una prueba'; } function MostrarVariable() { alert(i); } </script> </head> <body onload="MostrarVariable()"> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server"> </asp:ScriptManager> <asp:Button ID="Button3" runat="server" Text="Mostrar Variables" OnClientClick="MostrarVariable();return false;" /> Hora Primera carga: <%= DateTime.Now %> <cc1:TabContainer ID="TabContainer1" runat="server"> <cc1:TabPanel ID="Tab1" runat="server"> <HeaderTemplate> </HeaderTemplate> <ContentTemplate> <asp:Button ID="Button1" runat="server" Text="Sumar 5 " OnClientClick="sumar5(); return false;" /> <asp:Button ID="Button2" runat="server" Text="Mostrar Variables " OnClientClick="MostrarVariable();return false;" /> </ContentTemplate> </cc1:TabPanel> <cc1:TabPanel ID="Tab2" runat="server"> <HeaderTemplate> </HeaderTemplate> <ContentTemplate> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> Hora callback<%= DateTime.Now %> <asp:Button ID="Button4" runat="server" Text="Postback " /> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button4" EventName="Click" /> </Triggers> </asp:UpdatePanel> </ContentTemplate> </cc1:TabPanel> </cc1:TabContainer> </div> </form> </body> </html>