快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
在一个灵敏标签,那么,当我把模板 编辑代码添加到设计器类上时,它会自动地为我创建一个。

下面是 完整的模板编辑代码:

Public Overrides Sub Initialize(ByVal Component As IComponent)
MyBase.Initialize(Component)
'' Turn on template editing
SetViewFlags(ViewFlags.TemplateEditing, True)
End Sub
Private o_TemplateGroups As TemplateGroupCollection = Nothing
Public Overrides ReadOnly Property TemplateGroups() _
As TemplateGroupCollection
Get
If o_TemplateGroups Is Nothing Then
o_TemplateGroups = New TemplateGroupCollection()
Dim o_TemplateGroup As TemplateGroup
Dim o_TemplateDefinition As TemplateDefinition
Dim ctl As EmailContact2 = CType(Component, _
EmailContact2)
o_TemplateGroup = New TemplateGroup( _
"Surrounding Templates")
o_TemplateDefinition = New TemplateDefinition( _
Me, "Header Template", ctl, "HeaderTemplate", True)
o_TemplateGroup.AddTemplateDefinition( _
o_TemplateDefinition)
o_TemplateDefinition = New TemplateDefinition( _
Me, "Footer Template", ctl, "FooterTemplate", True)
o_TemplateGroup.AddTemplateDefinition( _
o_TemplateDefinition)
o_TemplateGroups.Add(o_TemplateGroup)
End If
Return o_TemplateGroups
End Get
End Property

全 面探讨ASP.NET 2.0中的Web控件改进技术之自动格式化与Web资源篇(五)

一、自动格式化

现在,让我们开始讨论本文中最有趣的内容。你是否曾把一个GridView拖动 到一个表单上并且注意到在属性浏览器有一个标有“Auto Format…”的链接?当 你点击它时,你会得到一个预定义格式的选择:例如Corporate,Elegant, Classic,等。事实上,随着ASP.NET 2.0发行的所有安全控件套件(Security Control Suite)都提供了这个特征。读完本节后,你一定会为在你的控件中提供 这种功能的容易程度而感到吃惊。

首先,我要确定我想在控件中提供什么格式。我将通过创建三种格式来简化 操作。其中的两个分别称为“Monochrome”和“Colorful”。第三个(实际上是 第一个)称为“No Format”;当把它拖动到一个表单时,它能够把控件恢复到其 原始状态。

我创建的每一种格式都需要它自己的继承自System.Web.UI.Design命名空间 的DesignerAutoFormat类。因此,我先从一个称为ColorfulFormat的继承自 DesignerAutoFormat的类开始。首先,我需要为这个类提供一个缺省的构造器; 并且我将在其中调用基类的构造器,发送给它一个参数—格式名称(将出现在列 表中)。

Public Sub New()
MyBase.New("Colorful")
End Sub

接下来,我必须重载Apply方法。这个方法接收一个Control类型的参数。我 的控件设计器类将调用这个方法,并且把我的控件实例发送到这个参数中。然后 ,我要把该参数转化成我的控件类型;这样以来,我就有一个可以使用的强类型 引用了。

Public Overrides Sub Apply( _
ByVal control As System.Web.UI.Control)
Dim ourControl As EmailContact2 = CType(control, EmailContact2)
If ourControl IsNot Nothing Then
...
End If
End Sub

现在,我要设置我需要的任何属性—这通常包括一些风格属性,但是它事实 上能够包括我需要的一切。因此,在“IsNot Nothing”检查中,针对这个特定 的格式,我只需简单地设置我想实现的任何风格属性。列表2展示了完整的列表 。

ourControl.BackColor=Drawing.Color.Aquamarine
ourControl.BorderStyle=BorderStyle.Double
ourContro

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号