CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

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

作者: 朱先忠 编译,  出处:天极, 责任编辑: 叶江, 
2007-01-30 11:15
  ASP.NET 2.0并没有抛弃1.1版本中的任何现有控件,而是增加了一组新的控件;同时还引入了若干新的控件开发技术。本系列文章将对这些内容展开全面探讨。

  接下来,我将创建一个称为MonochromeFormat的类并且执行相同的步骤—仅在这次,我把风格属性设置为black和white以相应于一种“monochrome”格式。源码文件中的列表3展示了这个类的完整代码。

  最后,我必须创建NoFormat类。这个类遵循与前两个相同的设计;但是,我不是把风格属性值设置成各种颜色及字体,而是在所有的风格属性上调用Reset方法。这可以把所有的风格值设置为它们的缺省状态。

  顺便说一下,既然我的EmailContact控件派生自CompositeControl类,而它又派生自WebControl类;所以,我还可以在我的控件的类级上取得风格属性。这意味着:我可以拥有BackColor,ForeColor等属性,而且可以直接从我的控件中存取它们而不必通过一个属性来实现。然而,为了复位这些风格值,我不是直接从我的控件类取得一个Reset方法,而是由WebControl类为我提供了一个ControlStyle属性,它用作相应于所有的容器风格值的入口点。注意:在复位控件的外观时,我还把Height属性设置为一个具有400个像素的缺省值。下面是完整的类:

  Public Class NoFormat
  Inherits DesignerAutoFormat
  Public Sub New()
  MyBase.New("No Format")
  End Sub
  Public Overrides Sub Apply(ByVal control _
  As System.Web.UI.Control)
  Dim ourControl As EmailContact2 = CType(control, _
  EmailContact2)
  If ourControl IsNot Nothing Then
  ourControl.ControlStyle.Reset()
  ourControl.HeadingStyle.Reset()
  ourControl.CaptionStyle.Reset()
  ourControl.FieldStyle.Reset()
  ourControl.ReadonlyFieldStyle.Reset()
  ourControl.ButtonStyle.Reset()
  ourControl.Height = Unit.Pixel(400)
  End If
  End Sub
  End Class

  现在,既然我已经创建了我想实现的所有格式类,那么,接下来,我需要对它们做一些实际的操作。为此,我将再转回到控件设计器类—实现一些重载。我需要重载的属性称为AutoFormats,它返回一个System.Web.UI.Design命名空间中的DesignerAutoFormatCollection类型的对象。

  就象在灵敏标签和模板编辑部分一样,我将实例化的对象(为了通过属性返回之)是在类级上声明的,因为ASP.NET基础结构会负责对它进行缓冲处理。

  Private o_AutoFormats As _
  DesignerAutoFormatCollection

  然后,在属性重载实现中,我可以测试对象变量是否是一个null值。现在,我们只需简单地使用我以前创建的每一个格式类的实例来填充o_AutoFormats集合对象。

  Public Overrides ReadOnly Property AutoFormats() _
  As DesignerAutoFormatCollection
  Get
  If o_AutoFormats Is Nothing Then
  o_AutoFormats = New DesignerAutoFormatCollection
  With o_AutoFormats
  .Add(New NoFormat)
  .Add(New MonochromeFormat)
  .Add(New ColorfulFormat)
  End With
  End If
  Return o_AutoFormats
  End Get
  End Property
共14页。 9 ... 7 8 9 10 11 12 13 14 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i