【发布时间】:2012-07-22 14:05:42
【问题描述】:
我在一个项目中有用户控件,我在另一个项目中添加了它的引用,该项目将有我的 aspx 页面。如何在我的页面中附加控件。我遇到过我们应该使用带有虚拟路径的负载控制方法。但我对虚拟路径一无所知。请帮我解决这个问题。
【问题讨论】:
标签: c# asp.net user-controls
我在一个项目中有用户控件,我在另一个项目中添加了它的引用,该项目将有我的 aspx 页面。如何在我的页面中附加控件。我遇到过我们应该使用带有虚拟路径的负载控制方法。但我对虚拟路径一无所知。请帮我解决这个问题。
【问题讨论】:
标签: c# asp.net user-controls
如果你想动态加载,那么你应该使用LoadControl
var c = this.LoadControl("~/AddressControl.ascx");
this.myPanel.Controls.Add(c);
如果您不想动态加载它,那么您只需在标记中指定控件,而不是其他用户控件:
<AddressControl runat="server" ID="myControl" />
您的问题是您实际上需要在您的 Web 应用程序或虚拟目录下引用 ASCX 文件。
您必须将您的 ASCX 文件复制到您的应用程序中,您可以通过配置构建后操作轻松完成该步骤
看看下面的文章,它详细描述了如何完成这个过程:
http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx
这就像一种解决方法,因为用户控件并非旨在跨项目共享,最适合您的情况的控件称为服务器控件,它们就是为此目的而设计的
【讨论】: