程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> asp.net控件開發技巧(2)關閉基類不必要的功能

asp.net控件開發技巧(2)關閉基類不必要的功能

編輯:關於ASP.NET

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 不需要呈現東西,自然不需要樣式,所以像SkinID,EnableTheming等屬性則不需要使用。同時也可以用new關鍵字和一些元數據禁用掉像WebControl類的一些公共屬性。有時候你確實不需要這些東西,或者是將這些屬性給子標簽用也可以。

/**//// <exclude/>
    /// <excludetoc/>
    [Bindable(false), Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
    new public System.Drawing.Color BorderColor
    {
      get
      {
        return new System.Drawing.Color();
      }
    }

總結:有時候繼承下來的並不是你所需要的,所以靈活的重寫基類的方法和屬性是非常有必要的,而且有時候還必須這麼做

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved