探讨ASP.NET 2.0中的Web控件改进技术
作者: 朱先忠 编译, 出处:天极, 责任编辑: 叶江,
2007-01-30 11:15
ASP.NET 2.0并没有抛弃1.1版本中的任何现有控件,而是增加了一组新的控件;同时还引入了若干新的控件开发技术。本系列文章将对这些内容展开全面探讨。
这个集合取得一个称为TemplateGroups的内置属性—我现在必须重载之。正是这个属性的内容将被暴露给页面开发者以实现相应的模板编辑功能。
| Public Overrides ReadOnly Property TemplateGroups() As TemplateGroupCollection Get If o_TemplateGroups Is Nothing Then ... End If Return o_TemplateGroups End Get End Property |
在这个属性重载中,我将构建Visual Studio使用的TemplateGroupCollection。属性中的“Is Nothing”检查有助于阻止对这个对象不必要的重新构建。
首先我将实例化o_TemplateGroups对象。
| o_TemplateGroups = New TemplateGroupCollection() |
现在,我需要使用我在“灵敏标签”一节中所讨论的组件变量来取得我设计的控件。
| Dim ctl As EmailContact = CType(Component, EmailContact) |
稍后,我将使用这个变量。但是首先,我必须建立我要使用的相应于TemplateGroup和TemplateDefinition对象的两个对象变量。
| Dim o_TemplateGroup As TemplateGroup Dim o_TemplateDefinition As TemplateDefinition |
现在我可以开始定义组和模板了。
| o_TemplateGroup = New TemplateGroup("Surrounding Templates") |
文本“Surrounding Templates”将出现在分类标题中,适用于我放在这个组中的所有模板定义。
| o_TemplateDefinition = New TemplateDefinition(Me, "Header Template", ctl,"HeaderTemplate",False) o_TemplateGroup.AddTemplateDefinition _ (o_TemplateDefinition) |
让我来详细分析一下该TemplateDefinition构造器中的参数。第一个参数是一个添加了模板编辑功能的设计器的实例—通常是Me;第二个参数是模板名—它将显示于一个快捷方式菜单或灵敏标签中。第三个参数是正在设计的控件—通过转换Component对象来得到它。第四个参数是控件中模板属性的名字。参数列表最后的Boolean参数被设置为False以便指定这个模板既接收服务器控件也接收HTML控件。如果把它设置为True则仅允许把服务器控件(常规Web控件)添加到模板上。
- 本文关键词:

