ASP.NET 伺服器控制項中的屬性
屬性類似欄位,但具有存取子方法。您應該公開控制項的屬性,而非公用欄位,因為屬性允許隱藏資料、進行版本控制,而且受視覺化設計工具 (例如 Visual Studio .NET) 的支援。存取子函式除了設定或擷取屬性以外,也可以執行其他的程式邏輯。如果您不熟悉屬性,請參閱屬性概觀。
繼承自控制項的屬性
如需控制項繼承自 Control 類別的屬性的完整清單,請參閱 System.Web.UI.Control。下列清單說明一些經常存取的屬性。
- Controls - 控制項子控制項的集合。
- ID - 控制項的使用者提供的識別碼。
- Page - 含有控制項的網頁。
- Parent - 控制項,其 Controls 集合為某控制項所屬。(控制項 A 為控制項 B 的父控制項,如果 B 是 A.控制項的項目)。
- ViewState - 被傳送至用戶端並送回的資料結構,通常用以跨數趟往返來保存表單資料。ViewState 的型別為 StateBag,它是儲存資料為名稱/值配對的字典。
- EnableViewState - 指示控制項是否要跨數趟往返以維護其檢視狀態。如果父控制項不維護其檢視狀態,其子控制項的檢視狀態自動不維護。
- UniqueID - 由 ASP.NET 網頁架構指派給控制項的階層式限定的唯一識別碼。
- ClientID - 由 ASP.NET 網頁架構指派給控制項並在用戶端呈現為 HTML ID 屬性的唯一識別碼。ClientID 不同於 UniqueID,因為 UniqueID 可以包含冒號字元 (:),這在 HTML ID 屬性中不是有效的 (並且在用戶端指令碼的變數名稱中不被允許)。
- Visible - 判斷控制項是否在網頁上為可見的。
繼承自 WebControl 的屬性
如果控制項衍生自 WebControl,它繼承與視覺顯示有關的其他屬性。如需繼承自 WebControl 屬性的完整清單,請參閱 System.Web.UI.WebControl。下列清單說明一些經常存取的 WebControl 的屬性。
- Font - 控制項的字型。
- ForeColor - 控制項的前景色彩。
- BackColor - 控制項的背景色彩。
- Height - 控制項的高度。
- Width - 控制項的寬度。
- Attributes - 當作屬性呈現到用戶端的名稱/值配對集合。Attributes 屬性包含宣告性設定的屬性的等位,這些屬性不對應至控制項的屬性 (或事件) 和那些利用程式設計方式來設定的屬性。
WebControl 也將數個其他的階層式樣式表 (CSS) 樣式公開為強型別屬性。
自訂繼承的屬性
控制項可以覆寫繼承的屬性來自訂屬性。若要覆寫屬性,您應該覆寫其存取子。下列範例示範衍生自 Button 的控制項,並覆寫 BackColor 屬性,因此背景色彩永遠為綠色。
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
namespace CustomControls
{
public class DerivedButton : Button
{
public DerivedButton() : base()
{
base.BackColor = Color.Green;
}
public override Color BackColor
{
get
{
return base.BackColor;
}
set
{
// Do nothing.
}
}
}
}
[Visual Basic]
Option Explicit
Option Strict
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Drawing
Namespace CustomControls
Public Class DerivedButton
Inherits Button
Public Sub New()
MyBase.BackColor = Color.Green
End Sub
Public Overrides Property BackColor() As Color
Get
Return MyBase.BackColor
End Get
Set
' Do nothing.
End Set
End Property
End Class
End Namespace
您也可以藉著覆寫 (或提供) 屬性來變更屬性的中繼資料。下列程式片段示範如何透過將 BrowsableAttribute 變更為 false,在設計工具 (例如 Visual Studio .NET) 的屬性瀏覽器中隱藏 BackColor 屬性。
[Browsable(false)]
public override Color BackColor{...}
[Visual Basic]
<Browsable(False)> _
Public Overrides Property BackColor() As Color
...
End Property