zoukankan      html  css  js  c++  java
  • asp.net控件开发技巧(2)关闭基类不必要的功能

     1.关闭容器

    Control类有Controls集合属性,即继承Control类的控件都是一个容器控件,asp.net控件内置的有PlaceHolder控件,其只继承自Control类,什么也没做。但所有控件都是继承自Control类的。如一个label控件,照样可以当容器使用.

    label1.Controls.add(control)

    有些控件则不需要这个功能,如Literal控件,只输出纯文字,不允许添加子控件



    很简单,重写CreateControlCollection方法,返回EmptyControlCollection空集合

       protected override ControlCollection CreateControlCollection()
        
    {
            
    return new EmptyControlCollection(this);
        }


    2.禁用属性

    如SqlDataSourceControl控件,其继承自DataSourceControl,DataSourceControl类则继承自Control类,DataSourceControl 不需要呈现东西,自然不需要样式,所以像SkinIDEnableTheming等属性则不需要使用。同时也可以用new关键字和一些元数据禁用掉像WebControl类的一些公共属性。有时候你确实不需要这些东西,或者是将这些属性给子标签用也可以。

            /// <exclude/>
            
    /// <excludetoc/>

            [Bindable(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
            
    new public System.Drawing.Color BorderColor
            
    {
                
    get
                
    {
                    
    return new System.Drawing.Color();
                }

            }

    总结:有时候继承下来的并不是你所需要的,所以灵活的重写基类的方法和属性是非常有必要的,而且有时候还必须这么做
  • 相关阅读:
    有关多线程的一些技术问题
    Remoting VS WCF 传输效率对比
    中英文术语对照表
    WCF配置文件全攻略
    架构设计之分布式文件系统
    Rails性能优化简明指南 (转载)
    不要活在别人的生活里(摘自开复网)
    find 命令 使用 (转载)
    turbo C BGI 基本图形接口的 例子
    如何编写Ruby控制台程序(一)
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/854565.html
Copyright © 2011-2022 走看看