Ocurre que la vida de los objetos está ligada a la permanencia en la página.
Si hay un redirect, estos se pierden. Eso incluye la consulta a la DB.
Prueba Server.Transfer.
Sin embargo, si hay objetos no muy grandes que se quieren conservar, se usa
session o viewstate para evitar el desorden.
AJAX soluciona mejor este problema, pues sólo unas partes de la página se
actualizan, de manera que los controles conservan su estado.

Suerte!


2009/10/6 Hernan Ventre <[email protected]>

> Sigo sin lograr lo que busco.
> Gracias igualmente.
> Saludos,
>
> Hernán Ventre
>
> ------------------------------
> *De:* Marcelo Abosch <[email protected]>
> *Para:* [email protected]
> *Enviado:* martes 6 de octubre de 2009, 16:33:22
>
> *Asunto:* [puntonet] Ciclo de vida de webforms, webusercontrols y otros
>
> probá creando los objectos en el Init()
>
>  *From:* Hernan Ventre <[email protected]>
> *Sent:* Tuesday, October 06, 2009 4:20 PM
> *To:* [email protected]
> *Subject:* [puntonet] Ciclo de vida de webforms, webusercontrols y otros
>
>  Estimados,
>
> Si no vuelvo a cargar los WebsUserControls no se ejecuta el evento
> capturado.
>
> Será porque lo cargo dinamicamente?.
>
> Les paso un código ejemplo (Default.aspx, Detalle.aspx y WUC.ascx) por si
> alguien lo puede ver, si lo ejecuto así no capturo  el evento, pero si lo
> saco del “if not isPostBack” tengo que volver a instanciar todo como lo
> explicaba inicialmente con todo lo que esto implicaba.
>
> Gracias nuevamente,
>
>
>
> <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"
> Inherits="_Default" %>
>
> <!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>Default_aspx</title>
>
> </head>
>
> <body>
>
>     <form id="form1" runat="server">
>
>         <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:
> PlaceHolder>
>
>     </form>
>
> </body>
>
> </html>
>
>
>
> Partial Class _Default
>
>     Inherits System.Web.UI.Page
>
>
>
>     Dim oControlPersonalizado As Control
>
>     Dim oPlaceHolder As PlaceHolder
>
>
>
>     Protected Sub Page_Load(ByVal sender As Object, ByVal e 
> AsSystem.EventArgs)
> Handles Me.Load
>
>
>
>         If Not Page.IsPostBack Then
>
>             oPlaceHolder = Page.FindControl("PlaceHolder1")
>
>             Me.oControlPersonalizado = LoadControl("WUC.ascx")
>
>             Me.oPlaceHolder.Controls.Add(Me.oControlPersonalizado)
>
>         End If
>
>
>
>     End Sub
>
>
>
> End Class
>
>
>
>
> ‘-------------------------------------------------------------------------------------------------
>
>
>
> <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Detalle.aspx.vb"
> Inherits="Detalle" %>
>
> <!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>Detalle_aspx</title>
>
> </head>
>
> <body>
>
>     <form id="form1" runat="server">
>
>         <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
>
>     </form>
>
> </body>
>
> </html>
>
>
>
> Partial Class Detalle
>
>     Inherits System.Web.UI.Page
>
>
>
>     Protected Sub Page_Load(ByVal sender As Object, ByVal e 
> AsSystem.EventArgs)
> Handles Me.Load
>
>         Dim tipo As String
>
>         tipo = Request.QueryString("Parametro")
>
>         TextBox1.Text = tipo
>
>     End Sub
>
>
>
> End Class
>
>
>
>
> ‘-------------------------------------------------------------------------------------------------
>
>
>
> <%@ Control Language="VB" AutoEventWireup="false" CodeFile="WUC.ascx.vb"
> Inherits="WebUserControl" %>
>
>     <div>
>
>         WUC_ascx<br />
>
>         <asp:Button ID="Button1" runat="server" Text="Button" />
>
>     </div>
>
>
>
> Partial Class WebUserControl
>
>     Inherits System.Web.UI.UserControl
>
>
>
>     Protected Sub Button1_Click(ByVal sender As Object, ByVal e 
> AsSystem.EventArgs)
> Handles Button1.Click
>
>         Response.Redirect("Detalle.aspx?Parametro=2")
>
>     End Sub
>
>
>
> End Class
>
>
>
>
> ‘-------------------------------------------------------------------------------------------------
>
>
>
> Saludos,
>
>
>
> Hernán Ventre
>
>  ------------------------------
> *De:* Diego Salas <[email protected]>
> *Para:* [email protected]
> *Enviado:* martes 6 de octubre de 2009, 15:52:09
> *Asunto:* [puntonet] Ciclo de vida de webforms, webusercontrols y otros
>
> Hernán,
> Probalo, deberia alcanzarte con el famoso if(!Page.IsPostaBack) y cargando
> acá lo que tengas que cargar desde la DB... esto lo hará la primera vez de
> carga de las paginas... luego lo saetearía (supuestamente)..
>
> Saludos.
>
>
>
> *____________________*
>
> *Ing. Diego G. Salas*
>   <[email protected]>[email protected]
>  +54-03886-429442
>
>
> >>> Hernan Ventre <[email protected]> 06/10/2009 15:38 >>>
>  Damián,
> Trabajo con el IsPostBack para definir otras cuestiones, pero esto lo había
> dejado fuera de este análisis y me parece que tenés razón.
> Dejame que lo pruebo y te contesto.
> Gracias,
>
> Hernán ventre
>
>  ------------------------------
> *De:* "[email protected]" <[email protected]>
> *Para:* [email protected]
> *Enviado:* martes 6 de octubre de 2009, 15:22:10
> *Asunto:* [puntonet] Ciclo de vida de webforms, webusercontrols y otros
>
> ? Hola Hernan,
>
> No te sirve el Page.IsPostBack?
>
> Saludos,
> Damián Herrera
> http://www.mug-it.org.ar/
>
>  ------------------------------
> *From:* [email protected] [mailto:[email protected]] *On Behalf Of *Hernan
> Ventre
> *Sent:* Tuesday, October 06, 2009 3:04 PM
> *To:* [email protected]
> *Subject:* [puntonet] Ciclo de vida de webforms, webusercontrols y otros
>
>  Hace unos días había consultado sobre el pasaje de parámetros de una
> página a otra.
>
> Recibí varias sugerencias las cuales les confirmo que funcionaron
> correctamente como me indicaron (Variables de session, SqueryString,
> HttpContext).
>
> Aclaro que creo tener un problema de entendimiento con el ciclo de vida de
> los webforms.
>
> Pido disculpas porque cuando solicité ayuda no especifiqué bien cual era
> realmente el problema (luego me di cuenta) y voy a intentar describírselos
> nuevamente.
>
> Paso a detallarles la secuencia de ejecución.
>
> A) Page_Load de Home.aspx
>
> Voy a buscar a la base de datos la estructura que debo levantar
> dinámicamente, entonces instancio los WebUserControls en los PlaceHolders
> correspondientes.
>
> En esos WebUserControls instancio Repeaters.
>
> B) Al capturar el evento Repeater1_ItemCommand supongamos que hago un
> Response.Redirect("Detalle.aspx")
>
> C)Si yo sigo la secuencia de ejecución (debagueo) a partir de la captura
> del evento se ejecuta lo siguiente.
>
> C-1) Page_Load de Home.aspx
>
> C-2)Page_Load de los WebUserControls
>
> C-3) Repeater1_ItemCommand
>
> C-4) Response.Redirect("Detalle.aspx")
>
> C-5) Page_Load de Home.aspx
>
> El tema es que para que finalmente se ejecute el punto C-4) debo pasar por
> los puntos anteriores, en donde vuelvo a la base de datos para armar
> nuevamente toda la estructura.
>
> Lo que yo necesitaría es tomar el C-4) e irme al C-5)  con alguna variable
> de Session y no tener que volver a repetir la carga de los pasos anteriores.
>
> Tendrán alguna idea para sugerirme.
>
> Espero que me entiendan,
>
> Saludos y gracias,
>
> Hernán Ventre
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
>
> __________ Informaci?n de NOD32, revisi?n 4042 (20090429) __________
>
> Este mensaje ha sido analizado con NOD32 antivirus system
> http://www.nod32.com
>
> ------------------------------
>
> Encontra las mejores recetas con Yahoo! Cocina.
> http://ar.mujer.yahoo.com/cocina/
>
> ------------------------------
>
> Encontra las mejores recetas con Yahoo! Cocina.
> http://ar.mujer.yahoo.com/cocina/
>
> ------------------------------
>
> Encontra las mejores recetas con Yahoo! Cocina.
> http://ar.mujer.yahoo.com/cocina/
>

<<image/jpeg>>

<<image/jpeg>>

Responder a