快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

上一篇讨论了类型转换器的使用,这次继续讨论讨论集合属性的使用

集合属性相信大家都很熟悉也很常用,如DropDownList,ListBox等控件

<asp:DropDownList ID="DropDownList1" runat="server">
       <asp:ListItem>测试1</asp:ListItem>
       <asp:ListItem>测试2</asp:ListItem>
       <asp:ListItem>测试3</asp:ListItem>
     </asp:DropDownList>

1.实现集合属性效果

经过前面几篇的学习,相信这一篇看起来已经相对简单了.我们要做的就是,先定义一个复杂属性,然后用迭代语句获取数组数据即可.

如果看过前面几篇就看看下面代码吧,相信看起来很简单,我们模仿一个DropDownList,为其属性添加背景属性,代码如下

先定义一个集合属性,如下

public class DropItem
   {
     private string text;
     private string value;
     private Color backColor;

     [
     Category("Behavior"),
     DefaultValue(""),
     Description("项文本"),
     NotifyParentProperty(true),
     ]
     public String Text
     {
       get
       {
         return text;
       }
       set
       {
         text = value;
       }
     }

     [
     Category("Behavior"),
     DefaultValue(""),
     Description("项值"),
     NotifyParentProperty(true),
     ]
     public String Value
     {
       get
       {
         return value;
       }
       set
       {
         this.value = value;
       }
     }

     [
     Category("Behavior"),
     DefaultValue(""),
     Description("背景颜色"),
     NotifyParentProperty(true),
     ]
     public Color BackColor
     {
       get
       {

         return backColor;
       }
       set
       {
         backColor = value;
       }
     }

   }

然后自定义一个控件,输出集合属性,如下代码

[ParseChildren(true, "DropItemList")]
  public class DropColor:WebControl
   {
    private ArrayList dropItemList;

     [
     Category("Behavior"),
     Description("项集合"),
     DesignerSerializationVisibility(
       DesignerSerializationVisibility.Content),
     PersistenceMode(PersistenceMode.InnerDefaultProperty),

     ]

    //定义集合属性
    public ArrayList DropItemList
     {
       get
       {
         if (dropItemList == null)
         {
           dropItemList = new ArrayList();
         }
         return dropItemList;
       }
     }

    //重写标签
    protected override HtmlTextWriterTag TagKey
    {
      get
      {
        return HtmlTextWriterTag.Select;
      }
    }
    protected override void RenderContents(HtmlTextWriter writer)
    {
      //

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