Dynamically adding a custom user control to a page
I have a usercontrol (ascx) that I want to dynamically add to a page.
Neither the control nor the page has a namespace (thanks crappy vendor).
When I use the following, it tells me it cant find the "type or namespace"
StayTunedControl = (UserControler_StayTuned)LoadControl("~/UserControler/StayTuned.ascx");
Page.Controls.Add(StayTunedControl);
StayTunedControl.StayTunedID = Convert.ToInt32(IncludesStayTunedMeta.Value);
After开发者_如何学Python some tweaking to the namespaces, etc, I am now at a point where the 3rd line above generates the following error:
'System.Web.UI.UserControl' does not contain a definition for 'StayTunedID'
I was hoping that casting StayTunedControl as type (UserControler_StayTuned) would fix this.
HELP?
Essentially, had problems with namespaces and remnants being left in the inherits attribute of the control - which was causing the compiler failed with error code 1. message.
Referred to the following for resolution -- matching up with some of the above comments:
http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx
Before accessing any property of the user control you need to create an instance of the user control when loading it to the page.
Dim tc As New Page
Dim c As Control = tc .LoadControl("~/usercontrols/tasks.ascx")
Dim uc As usercontrols_tasks = DirectCast(c, usercontrols_tasks)
I first loaded my user control as a generic control. Then created a new instance of the user control and casted the generic loaded control to my uc instance.
After creating an instance of your user control its properties will be available.
精彩评论