组件开发之Asp.net服务器控件Collection[集合]属性的设计时支持--编辑、保存

    制作服务器控件的时候,很多时候要用的集合属性(Collection Property),我将自己开发中学到的一些知识点总结一下,可能对初学控件开发的人会有些帮助.
    如果你开发过控件,一定知道,如果你的控件的Property都是一些基础的类数据型,那么我们不需要对这些Property的保存和恢复做太多的工作,.Net 已经做好了这些支持工作.但是如果你想要在控件中加入集合性质的属性,事情就没有那么简单了!集合属性是很常见的,例如ListBox中的ListItemCollection,GridView中的GridViewColumn等等.
    下面,我就把开发中的一些要点列举一下:
     1.控件级别 Control Class Level 设置如下属性
        [ParseChildren(true)]
        public class MyControl: WebControl
     2.属性级别 Property Level 设置如下
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        [PersistenceMode(PersistenceMode.InnerProperty)]
        [Editor(typeof(MyCollectionEditor),typeof(System.Drawing.Design.UITypeEditor))]
        public MyCollection Items
        {
           get{}
        }
        注: 集合属性都应该是只读的!
     3.实现MyCollectionEditor.
       
MyCollectionEditor

      大家可以看到,其实真正实现这个并不难,Framework中的基类CollectionEditor已经为我们做好了99%的功能,我们只要定制一下就好了!要注意的是前三个过程实现缺一不可,最后一个是在编辑对话框中显示项目的,可以是返回随意的字符串.
posted @ 2006-04-13 10:44 大剑师 阅读(1299) 评论(5)  编辑 收藏 网摘 所属分类: ASP.NET 控件开发

  回复  引用  查看    
#1楼2006-04-13 10:52 | Dflying Chen      
that's very cool and simple!
  回复  引用  查看    
#2楼2006-04-13 12:17 | 程序员      
谢谢共享
  回复  引用  查看    
#3楼2007-06-25 14:41 | ppchen      
谢谢了,找了好久,终于找到你了,呵呵~~
  回复  引用  查看    
#4楼[楼主]2007-06-26 14:47 | 大剑师      
@kingeric
???!!!




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 374054




相关文章:

相关链接: