来自不同程序集的ASP.NET控件

来自不同程序集的ASP.NET控件

问题描述:

我在'GeneralControls'程序集(经典DLL)中有一些控件,其中包含.ascx文件(以及它们的代码隐藏文件)。来自不同程序集的ASP.NET控件

我引用该DLL,并使用控件:

<%@ Register Tagprefix="g" Assembly="GeneralControls" Namespace="GeneralControls.UI" %> 


<g:FooterControl ID="Footer" runat="server" /> 

但是,FooterControl包含一些其他控件(标签,等等),以及那些从代码隐藏使用,抛出NullArgumentException。什么是共享ascx控件的正确方法?提前致谢。

用户控件(.ascx)必须存在于它们所服务的Web项目中。您不能将它们移动到另一个程序集以供共享。

如果你想拥有共享的控制,你需要它没有声明模式的自定义服务器控件,所有子控件必须在代码中通过重写CreateChildControls中创建等

http://support.microsoft.com/kb/893667(请参见标题“用户控件和自定义控件的基本区别是什么?”)

+0

哦,我希望这不是真的,并且有一个解决方法,或者任何方法如何编译ascx ..谢谢。 – nothrow 2010-06-30 15:44:18