快速业务通道

探讨ASP.NET 2.0中的Web控件改进技术

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
在,既然你已经了解了如何进行格式化,那么接下来,你应该学习何时以 及为什么进行格式化。

我仿佛听到CSS爱好者正在对本文大声叫喊。其实,我本人就是一个“层叠式 样表(CSS)”迷,并在我所有的站点中使用它们。自动格式化特征在有些情况下( 例如控件组)是非常有用的。例如,我们不妨考虑微软的安全控件套件(Security Control Suite)。从中,你会看到七种Web控件可用于一个站点中以为页面添加 认证功能。其中,每一种控件都提供了自动格式化功能,并且每一个控件都显示 一样的列表用于从中选择一个格式—这是相当不错的功能。

试想一下我们今天已经实现的一些流行的可视化效果:例如Outlook工具栏中 的许多风格,各种TreeView控件,菜单和工具栏,等。你完全可以把这其中的许 多特征集成到几乎任何站点的设计风格中。在这种情况下,自动格式化是一种相 当有用的工具。

现在请记住,在每一个格式类中,我把风格值改变为我的一些风格属性。如 果你在Web表单中应用这些格式中的任一个,那么,你将会看到这些风格值确实 在属性浏览器中改变了。如果我想(尽管我不会选择)这样做的话,那么我可以修 改style属性的CssClass值,并且把一个风格表类指派给它们。这当然可以顺利 地工作,但是之后,我需要同我的控件一起发布该CSS文件,并且还要确保页面 链接到它。

如果我能够在我的控件中使用这些资源文件而不必随同控件的DLL文件一起发 行它们,不是相当酷吗?好,下面我们来讨论本文的最后一个话题—Web资源。

一、Web资源

Web资源是被编译到你的控件DLL中的一些嵌入式文件。Windows表单控件开发 者很久以来就拥有这种能力,只是到现在它才被应用于Web领域。让我们想象开 发一个依赖于某些图像才能正确生成的控件的情形。只是简单地发布该控件相应 的DLL文件而不必考虑单独发布外部图像文件,这是特别有用的。分析一下微软 提供的新的Tree Web控件,那么你就会发现这一特征。在此,图像文件是讨论使 用Web资源的最佳候选,尽管我们还能够把它们使用于JScript文件中。

为了说明这一问题,我想把一个邮箱图像添加到我的EmailContact控件标题 的左边。你可能已经注意到,在图4中“CONTACT US”标题文字的左边已经存在 一个空图像。为此,我是通过简单地创建一个Image子控件并且把它添加到控件 层次中的适当位置来实现的。事实上,我还创建了一个称为ShowMailIcon的属性 以允许页面开发者隐藏/显示图像。

使用常规方法就能创建一个HeadingImageUrl字符串属性,并且在图像控件的 ImageUrl属性中设置它的值。这将允许页面开发者把这个图像设置为他所希望的 任何内容。我同意这一方法,而我在这个控件中就使用了这种方法。然而,我更 深入了一步。如果HeadingImageUrl属性不是空的,那么我使用它填充图像控件 的ImageUrl属性(如前所述);但是如果该属性是空的,那么我要实现一些更酷的 内容。

在我的Web控件工程中,我有一个称为mailbox.gif的邮箱图像。我将把图像 的BuildAction属性设置为EmbeddedResource(注意,我可以通过属性浏览器来实 现这一点)。

接下来,我需要存取我的工程的AssemblyInfo.vb文件。在ASP.NET 1.1中, 这个文件位于我的工程的根文件夹下,但是在ASP.NET 2.0中,它位于我的工程 文件夹下。不仅如此,我还必须点击属性浏览器顶部的“Show All Files”按钮 存取这个文件。在AssemblyInfo.vb文件的底部,我需要添加下列语句:

<Assembly: WebResource("mailbox.gif","image/gif")>

这一句把该嵌入式文件标识为一个可用的Web资源,以便于后面的提取操作。

为了提取该文件,我使用了Page.ClientScript对象的GetWebResourceUrl方 法。如前所述,我想使页

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号