我只是在一个asp.net web应用项目中创建新的用户控件。
创建后,源看起来是这样的:
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="SSR_Project.ascx.vb" Inherits="CS_SSR_RAIO.SSR_Project" %>
但只要我添加一些额外的代码吧,在第一行的错误是immedeately:
上下文不CS_SSR_RAIO.SSR_Project的”一个构件
我有谁似乎有相同的声明,但是不要有这种错误的其他用户控件。
任何帮助将不胜感激!
我得到这个错误,因为它找不到类我新的用户控件的代码隐藏的。 我有这个,因为我已经抄了用户控件,这是在我没有加入到继承属性正确命名空间。
添加了命名空间前缀,并开始工作了:)
我有这种事发生在我在下列条件下:
在VS2008 网站 (而不是一个项目 ):
1)我复制现有/起作用用户控件(如在CTRL +点击,拖,放)
2)I修饰的复制略微(附列表视图的数据源到一个不同的存储过程)
我固定它,如下所示:
1)创建一个新的用户控件(在VS添加新项)
2)打开我原本复制的.ascx,这一次只是复制所有的加价中,并将其粘贴到新的用户控件的.ascx。
3)同为.ascx.vb文件 - 打开一个从复制,复制所有的代码,并将其粘贴到新的用户控件的.ascs.vb文件
如果你只是看看新旧文件,也没有解释它 - 他们似乎是相同的。 对我来说,差异是,复制文件失败,而复制文件的内容成功。
我怀疑这可能是与部分类,而事实上,在网站上工作时,您无法访问所有的部件。 我认为,当涉及到的项目 ,您可以访问所有的部分-也许如果是这样的情况下,我能够看到是什么原因导致的问题。
确保控制从System.Web.UI.UserControl继承
后面的代码(SSR_Project.ascx.vb)应具备以下
public partial class SSR_Project : System.Web.UI.UserControl
遗憾的是,是C#语法,但..但你得到的图片:)
编辑:我觉得这是VB的语法..
公众为MustInherit类SSR_Project继承System.Web.UI.UserControl
感谢您的帮助,zybroxz和康斯坦丁D.
最后,我删除了用户控件从溶液中,再加入它并粘贴相同的代码到它,而这一切运作良好。 我也注意到,该用户控件的设计师是空的第一次尝试,它是正确填写第二次。
我也不会感到惊讶,如果事情创建用户控件的过程中出了问题,但此错误渗透thrue到PDP文件,因此无法删除...
您可以访问您的上下文, but your class must inherit from UserControl
链接: http://msdn.microsoft.com/fr-fr/library/system.web.ui.control.context(v=vs.80).aspx
复制现有控制然后粘贴和编辑可能会导致这个问题。 退房在.aspx.vb页面顶部的“Web窗体设计器生成的代码”块。 每个控制必须列出:即“保护WITHEVENTS LBLX作为System.Web.UI.WebControls.Label”添加控件粘贴到列表中,你是好去
对我来说,在VB.Net,问题是这样的:
如果你有这样的错误: error BC30456: "AnyPublicMethodOrProperty" is not a member of 'UserControl'
是因为用户控制被声明为普通UserControl
,而不是正好继承类,因此,在设计父页面,(例如: default.aspx.designer.vb
)控件属性应该用准确的类名来声明,并且不继承用户控件类。
所以,尽量找到这在设计师父页面:
'''<summary>
'''UcYourControlName control.
'''</summary>
'''<remarks>
'''Auto-generated field.
'''To modify move field declaration from designer file to code-behind file.
'''</remarks>
Protected WithEvents ucYourControlName As Global.System.Web.UI.UserControl
而与此替换它:
'''<summary>
'''UcYourControlName control.
'''</summary>
'''<remarks>
'''Auto-generated field.
'''To modify move field declaration from designer file to code-behind file.
'''</remarks>
Protected WithEvents ucYourControlName As Global.Wherever.Your.UserControl.Namespace.Is.Located.UcYourControlNameClass