3

我的“GeneralControls”程序集(经典 DLL)中有一些控件,它们由 .ascx 文件(以及它们的代码隐藏)组成。

我正在引用该 DLL,并将控件用作:

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


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

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

4

1 回答 1

3

用户控件 (.ascx) 必须存在于为其提供服务的 Web 项目中。您不能将它们移动到另一个装配体以进行共享。

如果你想要共享控件,你需要一个没有声明模式的自定义服务器控件,所有子控件必须通过覆盖 CreateChildControls 等在代码中创建。

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

于 2010-06-30T15:41:18.907 回答