By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,743 Members | 1,028 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,743 IT Pros & Developers. It's quick & easy.

need help with dynamically created user control

P: n/a
i have a dynamically created user control which contains a non-dynamically
created ASP.Net button. When the button is clicked, the event is not fired.
I know that the control must be created on postback, and it is. However,
I've noticed an intriguing thing which I think might be at the root of the
problem.

My page inherits from a basepage, which in turn inherits from
System.Web.UI.Page. On initial load, the events fire something like this:

page.load (aspx page)
control.load (dynamically loaded ascx control)
base.CreateChildControls (base page)
base.Render (base page)

however, on postback, the sequence of events changes to:
base.CreateChildControls
page.load
control.load
base.Render
I imagine that this unexpected change of sequence, in addition to what I'm
probably doing in CreateChildControls is the cause of my problem. I'm
guessing this because if I make my page inherit directly from
System.Web.UI.Page, the problem is solved (also, if I don't make the control
dynamic, the problem is solved).

Here's my CreateChildControls in the base page, as I suspect I might be
doing something wrong in it:

Protected Overrides Sub CreateChildControls()
Me.Controls.Add(_plcContent)
Dim mainForm As HtmlForm = CType(Page.FindControl("frmMain"), HtmlForm)
If Not mainForm Is Nothing Then
Dim Header As Control =
CType(Page.LoadControl("~/Presentation/Header.ascx"), Control)
Dim Footer As Control =
CType(Page.LoadControl("~/Presentation/Footer.ascx"), Control)
mainForm.Controls.AddAt(0, Header)
mainForm.Controls.Add(Footer)
_plcContent.Controls.Add(mainForm)
End If
MyBase.CreateChildControls()
End Sub
_plcContent is a new PlaceHolder defined in the base page.

Karl
Nov 17 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Karl, I am trying to Open my Mind.
Should MyBase.CreateChildControls() be first in line??
just guessing.

"Karl Seguin" <karl @ openmymind.net> wrote in message
news:u1*************@TK2MSFTNGP09.phx.gbl...
i have a dynamically created user control which contains a non-dynamically
created ASP.Net button. When the button is clicked, the event is not fired. I know that the control must be created on postback, and it is. However,
I've noticed an intriguing thing which I think might be at the root of the
problem.

My page inherits from a basepage, which in turn inherits from
System.Web.UI.Page. On initial load, the events fire something like this:

page.load (aspx page)
control.load (dynamically loaded ascx control)
base.CreateChildControls (base page)
base.Render (base page)

however, on postback, the sequence of events changes to:
base.CreateChildControls
page.load
control.load
base.Render
I imagine that this unexpected change of sequence, in addition to what I'm
probably doing in CreateChildControls is the cause of my problem. I'm
guessing this because if I make my page inherit directly from
System.Web.UI.Page, the problem is solved (also, if I don't make the control dynamic, the problem is solved).

Here's my CreateChildControls in the base page, as I suspect I might be
doing something wrong in it:

Protected Overrides Sub CreateChildControls()
Me.Controls.Add(_plcContent)
Dim mainForm As HtmlForm = CType(Page.FindControl("frmMain"), HtmlForm) If Not mainForm Is Nothing Then
Dim Header As Control =
CType(Page.LoadControl("~/Presentation/Header.ascx"), Control)
Dim Footer As Control =
CType(Page.LoadControl("~/Presentation/Footer.ascx"), Control)
mainForm.Controls.AddAt(0, Header)
mainForm.Controls.Add(Footer)
_plcContent.Controls.Add(mainForm)
End If
MyBase.CreateChildControls()
End Sub
_plcContent is a new PlaceHolder defined in the base page.

Karl

Nov 17 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.