pregunta tonta de Ajax
Publicado por javi Moreno (4 intervenciones) el 05/05/2008 13:19:50
Pue eso una pregunta tonta. pero es que estoy empezando con Asp.net ajax y las cosas no me salen como tengo entendido que debieran salir.
Me he creado mi primer update panel. Uno tipico de boton y label. (el que viene en tdos los ejemplos. La única diferencia es que he usado VisualBasic en vez de c#)
pero cuando doy al click el botón hace un postback y se ejecuta el page_load.
Entiendo que el Page_load no deberia ejecutarse pues no se deberia recargar la página. Vamos que esa es la gracia de AJAX ¿no?
Adjunto mi código que como podeis ver es de lo más basico.
Por un lado:
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!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 id="Head1" runat="server">
<title>Página sin título</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering ="true">
</asp:ScriptManager>
</div>
<asp:Label ID="LabelPage" runat="server" Text="Hora de la pagina"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="LabelUpdatePanel" runat="server" Text="Hora del panel"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button2_Click" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:panel ID="Panel1" runat="server" height="50px" width="125px"> </asp:panel>
</form>
</body>
</html>
Por el lado delservidor:
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'PAGE LOAD
LabelPage.Text = DateTime.Now.ToString()
LabelUpdatePanel.Text = DateTime.Now.ToString()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
LabelUpdatePanel.Text = DateTime.Now.ToString()
End Sub
End Class
Me he creado mi primer update panel. Uno tipico de boton y label. (el que viene en tdos los ejemplos. La única diferencia es que he usado VisualBasic en vez de c#)
pero cuando doy al click el botón hace un postback y se ejecuta el page_load.
Entiendo que el Page_load no deberia ejecutarse pues no se deberia recargar la página. Vamos que esa es la gracia de AJAX ¿no?
Adjunto mi código que como podeis ver es de lo más basico.
Por un lado:
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!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 id="Head1" runat="server">
<title>Página sin título</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering ="true">
</asp:ScriptManager>
</div>
<asp:Label ID="LabelPage" runat="server" Text="Hora de la pagina"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="LabelUpdatePanel" runat="server" Text="Hora del panel"></asp:Label>
<asp:Button ID="Button1" runat="server" OnClick="Button2_Click" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:panel ID="Panel1" runat="server" height="50px" width="125px"> </asp:panel>
</form>
</body>
</html>
Por el lado delservidor:
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'PAGE LOAD
LabelPage.Text = DateTime.Now.ToString()
LabelUpdatePanel.Text = DateTime.Now.ToString()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
LabelUpdatePanel.Text = DateTime.Now.ToString()
End Sub
End Class
Valora esta pregunta


0