快速业务通道

ASP.NET控件开发基础(6)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
边距")]
     [CategoryAttribute("Appearance")]
     public virtual int CellPadding
     {
       get { return ((TableStyle)ControlStyle).CellPadding; }
       set { ((TableStyle)ControlStyle).CellPadding = value; }
     }

     [BrowsableAttribute(true)]
     [DescriptionAttribute("表水平对齐")]
     [CategoryAttribute("Appearance")]
     public virtual HorizontalAlign HorizontalAlign
     {
       get { return ((TableStyle)ControlStyle).HorizontalAlign; }
       set { ((TableStyle)ControlStyle).HorizontalAlign = value; }
     }

     [BrowsableAttribute(true)]
     [DescriptionAttribute("表背景图片")]
     [CategoryAttribute("Appearance")]
     public virtual string BackImageUrl
     {
       get { return ((TableStyle)ControlStyle).BackImageUrl; }
       set { ((TableStyle)ControlStyle).BackImageUrl = value; }
     }

     #endregion

使用此控件

<custom:CreditCardForm6 BackColor="Black" ForeColor="White" runat="server" ID="example"
    Font-Bold="true" Font-Italic="true" GridLines="None" CellSpacing="5"
    BackImageUrl="images4.bmp" Font-Size="Larger"
    BorderColor="Yellow" BorderWidth="20px" BorderStyle="Ridge" HorizontalAlign="NotSet" EnableViewState="False" />

效果如下

ASP.NET控件开发基础(6)

好了,上面的基础讲完了.希望大家能够有所理解.下面还我们要讲一个重点的东西.

4.自定义类型化样式属性

如果样式属性无法满足你需求,则你可以通过自定义类型化样式来实现.

什么是自定义类型化样式?就是该类从style类派生,对其进行修改和扩充(书上就这么写了...我就这么理解了-_-)

如Table控件,一方面控件自身定义的样式属性,另一方面又定义了TableStyle类.你可以在使用控件样式属性和TableStyle类中进行选择.

但TableStyle类具有通用性,具有一定的灵活性.好了下面我们又要开始看代码了.当然从简单开始

(1)简单呈现样式属性

需要说明的注意点如下

1.重写LabelStyle(StateBag viewState)构造函数

2.样式属性需用视图状态来声明

3.Style类的重载的AddAttributesToRender方法需用两个参数的方法

AddAttributesToRender(HtmlTextWriter writer, WebControl owner)

示例5 自定义类型化样式:LabelStyle类 

public class LabelStyle :Style
   {
     public LabelStyle() { }
     public LabelStyle(StateBag viewState) : base(viewState) { }

     public virtual String ImageUrl
     {
       get { return ViewState["imageUrl"] != null ? (string)ViewState["imageUrl"] : ""; }
       set { ViewState["imageUrl"] = value; }
     }

     public override void AddAttributesToRender(HtmlTextWriter writer, WebControl owner)
     {
       writer.AddStyleAttribute(HtmlTextWriterStyle.BackgroundImage, ImageUrl);

       base.AddAttributesToRender(writer, owner);
     }
   }

下面再来看控件实现方法,注意此处CreateControlStyle方法返回为自己定义的LabelStyle

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