程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET2.0服務器控件之類型化樣式屬性

ASP.NET2.0服務器控件之類型化樣式屬性

編輯:關於ASP.NET

上一篇文章對控件樣式屬性的基本概念進行了介紹,同時,還通過示例說明了重寫樣式屬性的方法。本文重點對類型化樣式屬性的創建方法進行講解。

實現類型化樣式屬性的方法

繼承自Style類的類稱為類型化樣式。Style類可以由控件開發人員來擴展,創建一個自定義類型化樣式,它重寫或者添加Style類的屬性。服務器控件也可以把自定義類型化樣式作為ControlStyle屬性的類型。例如,Table控件的ControlStyle屬性就是TableStyle類型,該類型是擴展的Style,添加了例如CellPadding、CellSpacing和GridLines屬性等。在初步了解類型化樣式屬性的基本概念之後,下面列舉了實現類型化樣式屬性的方法要點。

(1)創建一個派生自System.Web.UI.WebControls.Style的類;

(2)定義樣式將為控件提供的屬性。在Style的ViewState字典中保存該屬性;

(3)重寫CopyFrom和MergeWith方法,從定義的屬性中復制或者將定義的屬性和一個給定樣式的屬性合並;

(4)重寫Reset方法,刪除添加到ViewState中的屬性;

(5)重寫AddAttributesToRender方法,產生HTML和CSS特性,作為控件呈現過程的一部分。

實際上,創建類型化樣式屬性並不是一個簡單的過程。為此,下面我們將通過典型應用示例來說明創建的具體方法,以便讀者加深對於實現要點的理解。

典型應用

本節通過創建一個MyPanel控件以及相關聯的類型化樣式MyPanelStyle,來講解如何實現並使用自定義類型化樣式。就功能而言,MyPanel與ASP.NET 2.0內置的Panel控件是一致。開發人員可以通過把需要添加的控件嵌套在控件的標簽中,向Controls集合中添加控件。在可視化設計器中,把所需添加的控件拖放到Panel的設計界面上,就可以把控件添加到Controls集合中。然而,MyPanel並不是從Panel類繼承而來,而是自定義實現的結果,同時,該控件還提供了類型化樣式屬性MyPanelStyle,其中設置了3個樣式屬性:

(1)BackImageUrl,用於指定背景圖片的URL;

(2)HorizontalAlign,用於指定所添加內容的水平對其方式;

(3)Wrap,用於指定是否允許對所添加的內容換行。

下面列舉了示例效果圖。

圖1

如圖1所示,圖中顯示了一個MyPanel控件,其中包括一行文字,文字的背景圖像已經定義,並且文字處於居中位置。

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