没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2005-03-02 13:09:00.000|阅读 1033 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
适用于:
Microsoft® ASP.NET
Microsoft Visual Studio® .NET
Microsoft .NET Framework
摘要:学习如何构建利用 Microsoft Visual Studio .NET 设计时支持的控件,这种支持使控件能够像 Microsoft ASP.NET
中的内置控件一样易于使用。
下载 DesignTimeSupportSample.msi。(请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理解。)
本文是由《ASP.NET in a Nutshell》第二版(ISBN:0596001169)改编而成,其作者包括 G. Andrew Duthie 和
Matthew MacDonald,由 O'Reilly & Associates, Inc. 于 2003 年出版。
目录
简介
Microsoft® ASP.NET 为开发人员提供了一种适用于 Web
开发的、功能最为强大的新工具:服务器控件。服务器控件使开发人员能够在短时间内开发出响应速度快而且功能强大的 Web 应用程序,所需的时间与在典型的 ASP
中创建类似应用程序的时间差不多。
ASP.NET 服务器控件之所以能够提供生产效率,关键原因之一在于它为 Microsoft Visual Studio® .NET
开发环境中的服务器控件提供了丰富的设计时支持。开发人员可以将服务器控件从 Visual Studio .NET 工具箱拖放到页面上,通过
Properties(属性)窗口访问它们的属性,然后在 Visual Studio HTML 编辑器以及 ASP.NET 页面的内含代码的类中利用
Microsoft IntelliSense® 语句完成功能。这些设计时功能为 Web 开发带来了快速应用程序开发 (RAD) 工具,而这些工具已被
Microsoft Visual Basic® 开发人员使用了多年。
ASP.NET
还使开发人员能够通过创建自定义服务器控件以封装大量可重复使用的用户界面特定的代码(例如登录或注册表单),来进一步提高生产效率。尽管开发人员已经开始意识到开发自定义控件的重要性,但许多人可能还没有意识到还能在控件中利用
Visual Studio 设计时支持的强大功能,使这些控件能够像 ASP.NET 中的内置控件那样易于使用。本文将介绍 Microsoft .NET
Framework 和 Visual Studio .NET 提供的设计时支持的类型,并向开发人员介绍如何构建利用这种支持的控件。
设计时支持的类型
针对 Visual Studio .NET 中的服务器控件,有五种不同的设计时支持。它们是:
内含代码的类中的 IntelliSense
设计视图中的属性浏览器支持
工具箱支持
HTML 视图中的属性浏览器支持
HTML 编辑器中的 IntelliSense
这些设计时支持类型是由几个不同的机制提供的。内含代码的类中的 IntelliSense 由 IDE 启用,IDE
为您的控件读取元数据以确定控件所提供的属性和方法及其类型和参数。要启用内含代码的类中的
IntelliSense,只需对您的控件进行编写和编译,然后将其程序集放到使用该控件的应用程序的 bin 子目录中。
Visual Studio .NET
编辑器设计视图中的属性浏览器支持通过以下两个途径提供:将该类型与某个属性相关联和/或将元数据特性与该属性相关联。将元数据特性(下文简称为特性)添加到您的代码中,用于标识属性的类别、提供属性说明以及在需要时指定首选编辑器。有些类型的属性(如
System.Drawing.Color)会自动映射到 Visual Studio .NET 中的相应编辑器中。
Visual Studio .NET 的 HTML 视图中的 IntelliSense 和属性浏览器支持通过使用一种 XSD
架构进行提供,该架构用于描述与控件相关联的类型,它使用称为 Visual Studio 注释的文本修饰指定控件的首选编辑器和其他首选项。
最后,您可以通过结合特性和带有特定属性的自定义位图来支持从 Visual Studio .NET 工具箱拖放控件。
Blog 控件示例
用于说明 Visual Studio .NET 中的设计时功能的控件称作“Blog 控件”,如本文末尾的列表 1 所示。该控件提供利用 XML
作为存储介质的简单 Web 日志功能。Web 日志通常称为 Blog,它实际上是一个 Web
页面,供人们在上面张贴有关日常生活、世态百象、时事政治或人们所关心的其他问题的定期观察报告或评论。Blog 条目是通过 Web 浏览器添加的。
Blog 控件非常简单明了,它利用控件组合向浏览器提供输出。在组合控件中,CreateChildControls 方法(由 ASP.NET
运行时自动调用)会被重写,利用此方法,我们可以创建构成自定义控件 UI 的控件,并将它们添加到控件的“控件”集合中。此外,该控件还包含用于显示和添加 Blog
以及当 XML Blog 存储文件不存在时创建一个这样的文件的逻辑。该控件的几个公共属性需要开发人员在设计时进行设置,其中包括在添加新 Blog
时该控件将重定向到的页面的 URL、与新 Blog 关联的电子邮件地址、控件模式(显示或添加)以及各 Blog 条目之间的分隔线的颜色。图 1 所示为正在运行的
Blog 控件。Add Blog(添加 Blog)超链接由 ASP.NET 超链接控件提供,独立于 Blog 控件。BlogClient.aspx 的代码如列表
2 所示。BlogClient.aspx 的 codebehind 类如列表 3 所示,它提供单击 Add Blog(添加 Blog)链接时更改 Blog
模式的逻辑。
图 1:运行时的 Blog 控件
图 2 所示为设计时基本 Blog 控件的外观。请注意,虽然列出了属性,但并未分类。
图 2:设计时的 Blog 控件
添加设计时支持
虽然在 Web 窗体页上使用 Blog 控件非常简单,但并不是很直观。例如,如果没有相关文档,使用 Blog 控件的人就无法知道 Mode 属性的有效值只能是
Display 或 Add。如果未将 Add 模式的相关信息明确地告诉使用该控件的开发人员,他们就很难自己发现并使用这种模式。
对于使用 Visual Studio .NET(或支持 IntelliSense 的其他
IDE)的开发人员而言,可以通过为控件添加设计时支持来解决这一问题。这可以通过综合利用本文前面所介绍的方法来实现。在为自定义服务器控件提供设计时支持所面临的挑战中,部分原因来自于在自定义控件中全面支持设计时功能所需的方法的多样性。最简单的、不需要任何附加编码的是内含代码的类中的
IntelliSense 语句完成方法,如图 3 所示,此方法适用于 BlogClient.aspx.vb。
图 3:内含代码的类中的 IntelliSense
遗憾的是,语句完成功能的自动支持并没有扩展到编辑 Web 窗体页时的设计视图或 HTML 视图,而且 Visual Studio
也没有提供不需要额外的控件工作就能在属性浏览器中查看和编辑属性的内置支持。更复杂的是,要在 Web 窗体编辑器的属性浏览器和设计视图中支持
IntelliSense,需要采用一种方法,要在该编辑器的 HTML 视图中支持 IntelliSense,则需要采用另一种方法。
要在设计视图中支持属性浏览,所需的方法是通过特性告诉 Visual Studio .NET 如何处理属性。要在 HTML
视图中支持语句完成和属性浏览,需要生成一个自定义 XSD 架构以描述控件中的类型。我们将在下文讨论这两种方法。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号