2

如何设置自定义服务器控件,以便可以将其拖到 Visual Studio 中的设计视图中?

我创建了一个单独的 ASP.NET 服务器控件项目和一个自定义控件MailLink,基本上是通过复制这篇 MSDN 文章中的代码:如何:在 Visual Studio 中使用自定义 ASP.NET 服务器控件。如果我手动注册库并使用以下两行将控件插入到我的网页中,该控件可以正常工作:

<%@ Register Namespace="Samples.AspNet" TagPrefix="Sample" %>
<Sample:MailLink runat="server" />

但是如何注册/配置控件,以便可以将其拖入 Visual Studio 的设计视图中?如果我从解决方案资源管理器中拖动我的控件,我得到的只是控件的路径。如果将服务器控件项目中的 dll 添加到我的 VS 工具箱中,当我将控件拖到设计视图上时,我会收到剪贴板 FORMATETC 错误。

4

3 回答 3

2

这是我发现比 MSDN 更有用的方法。

http://www.osnews.com/story/6802/Visual_Studio_NET_Design_View_and_Custom_Web_Controls

于 2009-03-23T16:36:52.367 回答
1

这显示了如何处理它的逐步过程http://www.newmobilecomputing.com/story/6802/Visual_Studio_NET_Design_View_and_Custom_Web_Controls/page4/

于 2009-03-23T16:43:15.703 回答
1

只是为了确保我们在同一页面上:

您可以在 ASP.Net 中构建不止一种类型的控件。不幸的是,根据您构建的控件类型,您通常只能在开发控件时开发将使用控件的页面时从 Visual Studio 获得对控件的设计器支持,但是不是两者。不受支持的控件将仅显示为灰色框。

IMO 这是 Visual Studio/ASP.Net 的重大失败,但我离题了。ascx我已经看到通过使用没有代码隐藏的控件克服了这个限制。

既然已经解决了,让我们继续前进。

听起来在这种情况下您正在使用Server Control. 您很幸运,因为在构建使用该控件的页面时,服务器控件应该从 Visual Studio 获得设计器支持。但是,您需要使控件对项目可用。

服务器控件通常被编译成一个 dll 程序集。您必须在解决方案中包含此文件的引用。此时您应该能够在工具箱中右键单击并选择Choose Items.... 这将向您显示一个对话框,允许您选择您的程序集。此时,您的控件应显示在工具箱中。

不幸的是,Visual Studio 有时可能对添加这些控件感到奇怪。您可能需要重新启动 Visual Studio 才能使它们可用。请注意,我仍然使用 Visual Studio 2005,因此希望 2008 年在这方面有所改进。

于 2009-03-23T16:49:53.333 回答