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

发布于 2024-09-08 01:44:09 字数 374 浏览 2 评论 0原文

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

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

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


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

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

I've got some controls in my 'GeneralControls' assembly (classic DLL), those consists of .ascx file (and codebehind for them).

I'm referencing that DLL, and using the controls as:

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


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

but, FooterControl contains some other controls (labels, and so on), and those, used from codebehind, throws NullArgumentException. What's the correct way to share ascx controls? Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

压抑⊿情绪 2024-09-15 01:44:10

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

如果您想要共享控件,则需要一个不具有声明性模式的自定义服务器控件,所有子控件必须通过重写 CreateChildControls 等在代码中创建。

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

User Controls (.ascx) must exist in the web project they are served from. You cannot move them to another assembly for sharing purposes.

If you want to have shared controls, you need a Custom Server Control which does not have the declarative pattern, all child controls must be created in code by overriding CreateChildControls, etc.

http://support.microsoft.com/kb/893667 (see the section titled "What are the basic differences between user controls and custom controls?")

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文