【问题标题】:Custom Server Control that can be dragged into design view in Visual Studio可在 Visual Studio 中拖入设计视图的自定义服务器控件
【发布时间】:2009-03-23 15:55:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: asp.net visual-studio-2008 custom-server-controls


    【解决方案1】:

    【讨论】:

      【解决方案2】:
      【解决方案3】:

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

      您可以在 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 年在这方面有所改进。

      【讨论】:

        猜你喜欢
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多