我有一个usercontrol(ascx),我想动态添加到页面。
控件和页面都没有命名空间(感谢糟糕的供应商)。
当我使用以下内容时,它告诉我它无法找到“类型或命名空间”
StayTunedControl = (UserControler_StayTuned)LoadControl("~/UserControler/StayTuned.ascx");
Page.Controls.Add(StayTunedControl);
StayTunedControl.StayTunedID = Convert.ToInt32(IncludesStayTunedMeta.Value);
在对命名空间等进行一些调整之后,我现在处于上面第3行产生以下错误的位置:
'System.Web.UI.UserControl'不包含'StayTunedID'的定义
我希望将StayTunedControl转换为类型(UserControler_StayTuned)来解决这个问题。
HELP?
答案 0 :(得分:0)
基本上,在控件的inherits属性中存在命名空间和残余的问题 - 这导致编译器失败,错误代码为1. message。
提及以下解决方案 - 与上述一些评论相符:
http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx
答案 1 :(得分:0)
在访问用户控件的任何属性之前,您需要在将用户控件加载到页面时创建该实例。
Dim tc As New Page
Dim c As Control = tc .LoadControl("~/usercontrols/tasks.ascx")
Dim uc As usercontrols_tasks = DirectCast(c, usercontrols_tasks)
我首先将我的用户控件加载为通用控件。然后创建了一个新的用户控件实例,并将通用加载的控件转换为我的uc实例。
创建用户控件的实例后,其属性将可用。