Al mandar llamar un control ascx, me borra el Control

22/01/2008 - 00:39 por Daniel H. Villa | Informe spam
Hola Compañeros:

Lo que pasa es que cuando presiono el boton me manda llamar un WebUser
Control.
Pero cuando presiono un boton que esta dentro del web user control se
desaparece el webuser control

Pregunta ¿cual es la forma correcta de mandar llamar un web user control
desde un boton?

y como hacer que el web user control no se borre cuando presiono un boton
que tiene el web user control


Les paso parte del codigo

public partial class _Default : System.Web.UI.Page
{
public event System.EventHandler EventGetData;
protected void Page_Load(object sender, EventArgs e)
{

if (ViewState["hasMyWebUserControl"] != null)
{
MyWebUserControl c =
(MyWebUserControl)Page.LoadControl("MyWebUserControl.ascx");
this.PlaceHolder1.Controls.Add(c);
//c.EventGetData = new EventHandler(c_EventGetData);
}



// HtmlButton myButton = new HtmlButton();

//myButton.InnerText = "Button 555";
//PlaceHolder1.Controls.Add(myButton);

//Menu mymenu = new Menu();


// estas dos lineas son las buenas jejje
//Control c = LoadControl("menu.ascx");
//PlaceHolder1.Controls.Add(c);


//ViewState["c"] = true;

}

protected void Button1_Click1(object sender, EventArgs e)
{

HtmlButton myButton = new HtmlButton();

myButton.InnerText = "Button 555";
PlaceHolder1.Controls.Add(myButton);

Menu mymenu = new Menu();

// estas dos lineas son las buenas jejje
Control c = LoadControl("menu.ascx");
PlaceHolder1.Controls.Add(c);

ViewState["c"] = true;
}
protected void Button2_Click1(object sender, EventArgs e)
{
Control controldos = LoadControl("controldos.ascx");
PlaceHolder1.Controls.Add(controldos);
}
protected void Button3_Click(object sender, EventArgs e)
{
// MyWebUserControl c =
(MyWebUserControl)Page.LoadControl("MyWebUserControl.ascx");
// this.PlaceHolder1.Controls.Add(c);
//*c.EventGetData = new EventHandler(c_EventGetData);
// ViewState["hasMyWebUserControl"] = true;
}
}


Salu2 Cordiales :-))

(""'·._.·L.I. Daniel Villa·._.·'"")
 

Leer las respuestas

#1 Alberto Poblacion
22/01/2008 - 08:48 | Informe spam
"Daniel H. Villa" wrote in message
news:
Lo que pasa es que cuando presiono el boton me manda llamar un WebUser
Control.



Me imagino que te refieres al "menu.ascx" que creas en el Button1_Click.
Este control aparecerá en pantalla justo después de pulsar el Button1. Pero
en cuanto pulses en pantalla cualquier otra cosa que ocasione un PostBack,
la página se destruye y se vuelve a construir, con lo cual ya no tiene el
ascx porque el único sitio en que se crea es en el Button1_Click.
El remedio es arrastrar una variable (por ejemplo en el ViewState) que
diga si ese control se necesita, y crearlo en todos los postbacks (por
ejemplo en el Page_Load). Cosa que, por cierto, ya estás haciendo con el
"MyWebUserControl.ascx". No tienes más que hacer lo mismo con el
"menu.ascx".

Preguntas similares