ASP.NET - Ciclo de vida de webforms, webusercontrols y otros

   
Vista:

Ciclo de vida de webforms, webusercontrols y otros

Publicado por Hernan Ventre (1 intervención) el 06/10/2009 23:10:35
Estimados,
El armado de los WebUserControl y su instanciación la hago en forma dinámica, con lo cual debo acceder a la base de datos para hacerlo. Por este motivo es que cuando capturo el evento de un WebUserControl, que en este caso solo es un Response.Redirect("Detalle.aspx?Parametro=2") no tendría que volver a armar todo. Si lo pongo dentro del “Not IsPostBack” no se me ejecuta el evento que capture en el WebuserControl, y si lo pongo afuera vuelvo a cargar todo y es precisamente lo que quiero evitar.
Alguna Sugerencia?.
Adjunto el código fuente (Default.aspx, Detalle.aspx y WUC.ascx) de un escenario similar para que se entienda el problema por si alguien lo puede ver.
Muchas gracias,

Hernán Ventre

<%@ 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 As System.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 As System.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 As System.EventArgs) Handles Button1.Click
Response.Redirect("Detalle.aspx?Parametro=2")
End Sub

End Class

‘-------------------------------------------------------------------------------------------------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder