E
Earl Teigrob
PROBLEM:
When a user control is loaded into a PlaceHolder control more than once, the
events do not fire on the first click of a control on the dynamically loaded
user control. In other words, the first time the control is dynamically
loaded, everything works fine. After that, if the control is loaded again
from the page button event handler, the user controls events fail to fire on
the first click
NOTE: I (believe I) am rebuilding all of the controls each time.
EXAMPLE:
I have created a very simple example to illistrate this.
In this example, when the button on the page is pressed once, it loads the
user control and the events of the user control work fine. If, however, the
page button is pressed again, the control is reloaded into the placeholder
but the user control events are lost on the first click of an event firing
control (button in this example). After the first click on the user control
button, the control buttons events start working again.
I am using this in a much more complex senerio and need to find out what I
am doing wrong.
Thank you for your help
Earl
USER CONTROL:
The user control consists of one button and a literal and the botton event
is:
private void Button1_Click(object sender, System.EventArgs e)
{
Literal1.Text="Hello World";
}
ASPX PAGE THAT LOADS CONTROL
The loading page consists of a placeholder control and a button with the
following property and event handlers
private void Page_Load(object sender, System.EventArgs e)
{
if (ControlLoaded)
LoadUserControl();
}
private void Button1_Click(object sender, System.EventArgs e)
{
LoadUserControl();
}
private void LoadUserControl()
{
PlaceHolder2.Controls.Clear();
PlaceHolder2.Controls.Add(Page.LoadControl("~/test/DynamicLoadUserCont.ascx"
));
ControlLoaded=true;
}
public bool ControlLoaded
{
get
{
Object s = ViewState["ControlLoaded"];
return ((s==null)?false
bool)s);
}
set
{
ViewState["ControlLoaded"] = value;
}
}
When a user control is loaded into a PlaceHolder control more than once, the
events do not fire on the first click of a control on the dynamically loaded
user control. In other words, the first time the control is dynamically
loaded, everything works fine. After that, if the control is loaded again
from the page button event handler, the user controls events fail to fire on
the first click
NOTE: I (believe I) am rebuilding all of the controls each time.
EXAMPLE:
I have created a very simple example to illistrate this.
In this example, when the button on the page is pressed once, it loads the
user control and the events of the user control work fine. If, however, the
page button is pressed again, the control is reloaded into the placeholder
but the user control events are lost on the first click of an event firing
control (button in this example). After the first click on the user control
button, the control buttons events start working again.
I am using this in a much more complex senerio and need to find out what I
am doing wrong.
Thank you for your help
Earl
USER CONTROL:
The user control consists of one button and a literal and the botton event
is:
private void Button1_Click(object sender, System.EventArgs e)
{
Literal1.Text="Hello World";
}
ASPX PAGE THAT LOADS CONTROL
The loading page consists of a placeholder control and a button with the
following property and event handlers
private void Page_Load(object sender, System.EventArgs e)
{
if (ControlLoaded)
LoadUserControl();
}
private void Button1_Click(object sender, System.EventArgs e)
{
LoadUserControl();
}
private void LoadUserControl()
{
PlaceHolder2.Controls.Clear();
PlaceHolder2.Controls.Add(Page.LoadControl("~/test/DynamicLoadUserCont.ascx"
));
ControlLoaded=true;
}
public bool ControlLoaded
{
get
{
Object s = ViewState["ControlLoaded"];
return ((s==null)?false
}
set
{
ViewState["ControlLoaded"] = value;
}
}