探讨ASP.NET 2.0中的Web控件改进技术
定了,你不能直接设置该控件的属性。而是,你必 须使用反射机制来存取该控件的属性,然后再设置它的值。为了方便这一实现, 我编写了一个称为GetControlProperty的方法,它能够返回一个 PropertyDescriptor对象。这样以来,开发者就不需要再重复每一种属性映射下 的反射编码。下面是一个属性映射看起来的样子。
接下来,我需要建立的是你在图2中所看到的链接:“About EmailContact” 和一个到我自己的网站的链接。这些链接将执行我将在这个类中创建的方法。我 的第一个方法名为ShowAboutBox,它显示一个Windows表单以用作我的控件的一 个“关于”信息提示窗口。第二个方法称为LaunchWebSite,它执行一个对 System.Diagnostics.Process.Start的调用以便在一个浏览器实例中启动我的网 站。这两个方法的唯一的要求是:每一个签名都必须是一个“Sub”(在C#语言中 相应于一个void函数)并且不带参数。 注意,在这个灵敏标签示例中仅显示了两个属性和两个链接,但是借助于我 刚才所展示的技术,你完全可以提供你所需要的尽可以多的这些对象。然而,我 建议:不要使用太多的信息来重载一个灵敏标签。记住,你仅想把信息放于此以 便页面开发者立即使用,从而使得Web控件开发更具直观性。 现在,既然我已经创建了我的属性映射和行为方法,那么接下来,我将创建 灵敏标签的内容。其中,DesignerActionList类提供一个称为 GetSortedActionItems的重载函数。以后,一个设计器类将重载这个函数,并且 它会返回一个DesignerActionItemCollection(定义于 System.ComponentModel.Design命名空间)类型的对象。 这个属性重载的实现部分将创建一个新的DesignerActionItemCollection对 象并且使用四个不同的类(DesignerActionHeaderItem, DesignerActionPropertyItem,DesignerActionMethodItem和 DesignerActionTextItem)的实例来填充它。注意,这四个类都派生自抽象 DesignerActionItem类。下面,我将同你逐个展开讨论。
这段代码使用DesignerActionHeaderItem类来创建灵敏标签分类头部,并且 在它们的构造器中接收分类名字。我将直接把这个类的实例插入到我刚才创建的 集合中。
为每一种分类创建准确的标题是相当重要的,这不仅是因为它作为在灵敏标 签中作为该分类的头部相应的显示文本这一用途。早些时候,我创建了两个分别 称为MailServer和PreDefinedDisplay的属性映射;现在我想把它们添加到灵敏标 签中。为此,我将创建DesignerActionPropertyItem类的实例并且把它们添加到 集合中。
注意,该构造器接收三个参数:属性名,将出现在灵敏标签上的文本信息, 以及相应类型的准确标题(在DesignerActionHeaderItem的实例中定义)。 接下来,我想以相同的方式把行为链接添加到灵敏标签。注意,也仅仅是在 此时,我们使用了DesignerActionMethodItem类的实例。
在此 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |