zoukankan      html  css  js  c++  java
  • 组件开发之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.
           

    class MyCollectionEditor:CollectionEditor
        {

            
    public MyCollectionEditor(Type type) : base(type)
          {
          }

          
    protected override bool CanSelectMultipleInstances()
          {
              
    return false;
          }

            
    protected override System.Type CreateCollectionItemType()
            {
                
    return typeof ( MyItem );
            
            }
            
    protected override string GetDisplayText(object value)
            {
                MyItem exp 
    = value as MyItem 
                
    //return exp.ToString();
                return exp.DisplayText;
            }
            
        }


          大家可以看到,其实真正实现这个并不难,Framework中的基类CollectionEditor已经为我们做好了99%的功能,我们只要定制一下就好了!要注意的是前三个过程实现缺一不可,最后一个是在编辑对话框中显示项目的,可以是返回随意的字符串.

  • 相关阅读:
    单表清除重复数据
    调用webApi封装
    简单写入本地日志,日志文件位置与主程序exe位置相同
    APPConfig.XML获取配置文件(主程序和Dll各自的)
    获取当前运行程序上一级目录指定文件夹,没有就创建文件夹
    shell脚本中的单引号和双引号以及反引号详解
    Linux shell中反引号(`)的应用
    关于网页 硬解 软解 H264 HEVC 和你电脑起飞了那点事
    浏览器支持H.265解码总结
    微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)
  • 原文地址:https://www.cnblogs.com/kingeric/p/630863.html
Copyright © 2011-2022 走看看