• 自定义控件


    在现在的公司一直在用第三方控件,有的挺好用的,但是也有的不是很好用。

    今天就讲讲这第三方控件、用户控件以及自定义web服务端控件之间的区别和联系,以便更好的使用控件,达到好的效果。

    第三方控件是一些团队或者个人开发根据实际需要的应用开发出来的控件。 很多开发中都用到第三方控件,优点就是开发效率高; 缺点:如果不是开源的,需要花钱,还有就是第三方控件很可能经常升级,需要注意更新的内容。

    自定义控件是直接或间接派生新类从 System.Web.UI.Control 类,或从System.Web.UI.WebControls.WebControl 类,编译后直接可以放到工具箱中用,就像TextBox,DataGrid一样。在设计器中可以用鼠标拖动到页面上使用。

    部分第三方控件实际上就是自定义控件,这两个概念不是一个层次上的,自定义控件是从技术实现方式上来说的,第三方控件是从提供开发方来说的。

    所以讲解这三者之间的区别和联系,也就是需要了解 Web 用户控件(UserControl)或 Web 自定义控件

    msdn上市这么讲解的:

    如果现有的 ASP.NET 服务器控件都不符合应用程序的特定要求,则可以创建封装所需功能的 Web 用户控件或 Web 自定义控件。这两种控件之间的主要区别在于设计时的易创建性与易用性。 

    Web 用户控件易于创建,但它们在高级方案中使用起来可能不太方便。开发 Web 用户控件的方式与开发 Web 窗体页的方式几乎完全相同。与 Web 窗体相似,用户控件可以在可视化设计器中创建,可以使用与 HTML 隔离的代码来编写,并且可以处理执行事件。但是,由于 Web 用户控件在运行时动态地进行编译,所以不能将它们添加到工具箱中,而且它们在添加到页面上时由简单的占位符标志符号来表示。如果您习惯于完全的 Visual Studio .NET 设计时支持(包括“属性”窗口和“设计”视图预览),这将会使 Web 用户控件使用起来更不方便。 此外,在应用程序之间共享用户控件的唯一方式是将一个单独的副本放入每个应用程序,因此如果对该控件作出了更改,将需要进行比较多的维护。

    Web 自定义控件是编译的代码,这使得 Web 自定义控件更易于使用但更难于创建;Web 自定义控件必须使用代码来创建。一旦创建该控件,那么,您就可以将其添加到工具箱中,并在具有完全“属性”窗口支持和 ASP.NET 服务器控件的其他所有设计时功能的可视化设计器中显示该控件。此外,还可以在全局程序集缓存中安装 Web 自定义控件的单个副本,并在应用程序之间共享该副本,这将使维护变得更容易。有关更多信息,请参阅全局程序集缓存。

    如果您的控件包含大量静态布局,用户控件则可能是较佳的选择。如果您的控件主要是动态生成的(例如数据绑定表的行、树视图的节点或选项卡 (TabControl) 控件的选项卡),自定义控件则可能是较佳的选择。

    下表概述了这两种类型之间的主要区别:

    Web 用户控件                                           Web 自定义控件 
    易于创建                                               难于创建 
    为使用可视化设计工具的使用者提供有限的支持    为使用者提供完全的可视化设计工具支持
    每个应用程序中需要控件的一个单独副本       仅在全局程序集缓存中需要控件的单个副本 
    不能添加到 Visual Studio 中的工具箱         可以添加到 Visual Studio 中的工具箱 
    适用于静态布局                              适用于动态布局 

    给大家提供一个比较好的自定义控件文章:http://www.cnblogs.com/holywolf/archive/2008/12/23/1360316.html

  • 相关阅读:
    在Android应用程序使用YouTube API来嵌入视频
    一个现代化的JSON库Moshi针对Android和Java
    安卓蓝牙技术Bluetooth使用流程(Bluetooth详解)
    android和javascript之间相互通信实例分析
    Android开发JDBC连接mysql数据库导入驱动方法
    android zxing自定义界面,点击按钮开关闪光灯
    Android性能优化之如何避免Overdraw
    android自定义控件实现刮刮乐效果
    关于linux 添加新的硬盘
    java整型数与网络字节序的 byte[] 数组转换关系
  • 原文地址:https://www.cnblogs.com/love828/p/3234812.html
Copyright © 2020-2023  润新知