Control 類別

定義

定義所有 ASP.NET 伺服器控制項共用的屬性、方法和事件。

public ref class Control : IDisposable, System::ComponentModel::IComponent, System::Web::UI::IDataBindingsAccessor, System::Web::UI::IParserAccessor
public ref class Control : IDisposable, System::ComponentModel::IComponent, System::Web::UI::IControlBuilderAccessor, System::Web::UI::IControlDesignerAccessor, System::Web::UI::IDataBindingsAccessor, System::Web::UI::IExpressionsAccessor, System::Web::UI::IParserAccessor, System::Web::UI::IUrlResolutionService
public class Control : IDisposable, System.ComponentModel.IComponent, System.Web.UI.IDataBindingsAccessor, System.Web.UI.IParserAccessor
[System.ComponentModel.Bindable(true)]
[System.Web.UI.Themeable(false)]
public class Control : IDisposable, System.ComponentModel.IComponent, System.Web.UI.IControlBuilderAccessor, System.Web.UI.IControlDesignerAccessor, System.Web.UI.IDataBindingsAccessor, System.Web.UI.IExpressionsAccessor, System.Web.UI.IParserAccessor, System.Web.UI.IUrlResolutionService
type Control = class
    interface IComponent
    interface IDisposable
    interface IParserAccessor
    interface IDataBindingsAccessor
[<System.ComponentModel.Bindable(true)>]
[<System.Web.UI.Themeable(false)>]
type Control = class
    interface IComponent
    interface IDisposable
    interface IParserAccessor
    interface IUrlResolutionService
    interface IDataBindingsAccessor
    interface IControlBuilderAccessor
    interface IControlDesignerAccessor
    interface IExpressionsAccessor
Public Class Control
Implements IComponent, IDataBindingsAccessor, IDisposable, IParserAccessor
Public Class Control
Implements IComponent, IControlBuilderAccessor, IControlDesignerAccessor, IDataBindingsAccessor, IDisposable, IExpressionsAccessor, IParserAccessor, IUrlResolutionService
繼承
Control
衍生
屬性
實作

範例

下列範例示範衍生自 類別的 Control 自定義伺服器控制項。 類別 InnerContentControl.Render 覆寫 方法,檢查類別是否在頁面上有任何子控件,並判斷控件的第一個子系是否為常值控件。 如果這兩個條件都符合,覆寫方法會將 HTML 字串 <H2>您的訊息:、常值控件的內容,以及結尾 </H2> 標記寫入至 Web Form 頁面。

重要

這個範例有一個可接受使用者輸入的文字方塊,這可能會造成安全性威脅。 根據預設,ASP.NET Web 網頁會驗證使用者輸入未包含指令碼或 HTML 項目。 如需詳細資訊,請參閱 Script Exploits Overview (指令碼攻擊概觀)。

using System;
using System.Web;
using System.Web.UI;

namespace SimpleControlSamples {

    public class InnerContent : Control {
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="Execution")]
       protected override void Render(HtmlTextWriter output) {

           if ( (HasControls()) && (Controls[0] is LiteralControl) ) {
               output.Write("<H2>Your message : ");
               Controls[0].RenderControl(output);
               output.Write("</H2>");
           }
       }
    }
}

Option Explicit
Option Strict

Imports System.Web
Imports System.Web.UI

Namespace SimpleControlSamples
    Public Class InnerContent
        Inherits Control
        <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="Execution")> _
        Protected Overrides Sub Render(output As HtmlTextWriter)
            
            If HasControls() And TypeOf Controls(0) Is LiteralControl Then
                output.Write("<H2>Your message : ")
                Controls(0).RenderControl(output)
                output.Write("</H2>")
            End If
        End Sub
    End Class
End Namespace 'SimpleControlSamples

備註

這是您在開發自定義 ASP.NET 伺服器控制項時衍生的主要類別。 Control 沒有任何使用者介面 (UI) 特定功能。 如果您要撰寫沒有 UI 的控制件,或結合轉譯自己的 UI 的其他控制件,請衍生自 Control。 如果您要撰寫具有UI的控件,請衍生自 WebControl 或命名空間中的任何 System.Web.UI.WebControls 控件,為自定義控件提供適當的起點。

類別 Control 是所有 ASP.NET 伺服器控制件的基類,包括自定義控件、使用者控件和頁面。 ASP.NET 頁面是 類別的 Page 實例,其繼承自 Control 類別,且會處理具有 .aspx 擴展名之檔案的要求。

類別 Control 可以直接或間接用來做為 Web 應用程式使用者介面的一部分,因此應該仔細檢查,以確保遵循撰寫安全程式碼和保護應用程式的最佳做法。

如需這些主題的一般資訊,請參閱 Web 應用程式安全性威脅概觀、 安全策略最佳做法重要安全性概念。 如需更具體的資訊,請參閱 保護標準控件如何:顯示安全錯誤訊息如何:藉由將 HTML 編碼套用至字串來保護 Web 應用程式中的腳本惡意探索,以及 驗證控件簡介

建構函式

Control()

初始化 Control 類別的新執行個體。

屬性

Adapter

針對控制項取得瀏覽器的特定配置器。

AppRelativeTemplateSourceDirectory

取得或設定包含了此控制項之 PageUserControl 物件的相對應用程式虛擬目錄。

BindingContainer

取得包含了此控制項之資料繫結的控制項。

ChildControlsCreated

取得值,指出是否已經建立伺服器控制項的子控制項。

ClientID

取得 ASP.NET 所產生之 HTML 標記的控制項識別碼。

ClientIDMode

取得或設定用來產生 ClientID 屬性值的演算法。

ClientIDSeparator

取得字元值,表示在 ClientID 屬性中所使用的分隔字元。

Context

取得與目前 Web 要求的伺服器控制項關聯的 HttpContext 物件。

Controls

取得 ControlCollection 物件,表示 UI 階層架構中指定之伺服器控制項的子控制項。

DataItemContainer

如果命名容器實作 IDataItemContainer,則取得命名容器的參考。

DataKeysContainer

如果命名容器實作 IDataKeysControl,則取得命名容器的參考。

DesignMode

取得值,指出控制項是否正用於設計介面上。

EnableTheming

取得或設定值,指出佈景主題是否套用至此控制項。

EnableViewState

取得或設定值,該值表示伺服器控制項是否對要求的用戶端而言保持其檢視狀態,以及它包含的任何子控制項狀態。

Events

取得控制項事件處理常式委派 (Delegate) 的清單。 這個屬性是唯讀的。

HasChildViewState

取得值,指出目前伺服器控制項的子控制項是否有任何已儲存的檢視狀態設定。

ID

取得或設定指派給伺服器控制項的程式設計識別項。

IdSeparator

取得用來分隔控制項識別項的字元。

IsChildControlStateCleared

取得值,指出這個控制項中所包含的控制項是否有控制項狀態。

IsTrackingViewState

取得值,指出伺服器控制項是否正在儲存檢視狀態的變更。

IsViewStateEnabled

取得值,指出這個控制項是否已啟用檢視狀態。

LoadViewStateByID

取得值,指出控制項是否依 ID (而不是索引) 參與載入其檢視狀態。

NamingContainer

取得伺服器控制項命名容器的參考,其建立唯一命名空間,在具有相同 ID 屬性值的伺服器控制項之間作區別。

Page

取得含有伺服器控制項的 Page 執行個體的參考。

Parent

在網頁控制階層架構中取得伺服器控制項之父控制項的參考。

RenderingCompatibility

取得值,這個值會指定將與呈現 HTML 相容的 ASP.NET 版本。

Site

當呈現在設計介面上時,取得裝載目前控制項之容器的資訊。

SkinID

取得或設定要套用至控制項的面板。

TemplateControl

取得或設定包含了此控制項之樣板的參考。

TemplateSourceDirectory

取得包含目前伺服器控制項的 PageUserControl 的虛擬目錄。

UniqueID

取得伺服器控制項唯一的、符合階層架構的識別項。

ValidateRequestMode

取得或設定值,指出控制項是否對來自瀏覽器的用戶端輸入檢查潛在的危險值。

ViewState

取得狀態資訊的字典,允許您在相同網頁的多個要求之間,儲存和還原伺服器控制項的檢視狀態。

ViewStateIgnoresCase

取得值,指出 StateBag 物件是否不區分大小寫。

ViewStateMode

取得或設定這個控制項的檢視狀態模式。

Visible

取得或設定值,指出伺服器控制項是否會轉譯為頁面上的 UI。

方法

AddedControl(Control, Int32)

在子控制項加入 Control 物件的 Controls 集合後呼叫。

AddParsedSubObject(Object)

通知伺服器控制項,XML 或 HTML 項目已剖析,並將項目加入伺服器控制項的 ControlCollection 物件中。

ApplyStyleSheetSkin(Page)

將頁面樣式表中所定義的樣式屬性套用至控制項。

BeginRenderTracing(TextWriter, Object)

開始進行轉譯資料的設計階段追蹤。

BuildProfileTree(String, Boolean)

收集伺服器控制項的相關資訊,並在頁面啟用追蹤時將此資訊傳遞至 Trace 屬性以顯示之。

ClearCachedClientID()

將快取的 ClientID 值設定為 null

ClearChildControlState()

刪除伺服器控制項之子控制項的控制項狀態資訊。

ClearChildState()

刪除所有伺服器控制項之子控制項的檢視狀態和控制項狀態資訊。

ClearChildViewState()

刪除所有伺服器控制項之子控制項的檢視狀態資訊。

ClearEffectiveClientIDMode()

將目前的控制項執行個體和任何子控制項的 ClientIDMode 屬性設定為 Inherit

CreateChildControls()

由 ASP.NET 網頁架構呼叫,通知使用組合實作的伺服器控制項來建立所包含的任何子控制項,以準備回傳或呈現。

CreateControlCollection()

建立新的 ControlCollection 物件來保存伺服器控制項的子控制項 (常值和伺服器)。

DataBind()

將資料來源繫結至所叫用的伺服器控制項及其所有子控制項。

DataBind(Boolean)

使用會引發 DataBinding 事件的選項,繫結資料來源至叫用的伺服器控制項及其所有子控制項。

DataBindChildren()

繫結資料來源至伺服器控制項的子控制項。

Dispose()

啟用伺服器控制項,在它從記憶體釋放之前執行最後清除。

EndRenderTracing(TextWriter, Object)

結束轉譯資料的設計階段追蹤。

EnsureChildControls()

判斷伺服器控制項是否包含子控制項。 如果不包含,則建立子控制項。

EnsureID()

為尚未指定識別項的控制項,建立識別項。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindControl(String)

在目前命名容器搜尋具有指定 id 參數的伺服器控制項。

FindControl(String, Int32)

使用指定的 id 和有助於搜尋之 pathOffset 參數中所指定的整數,在目前的命名容器中搜尋伺服器控制項。 您不應該覆寫這個版本的 FindControl 方法。

Focus()

設定控制項的輸入焦點。

GetDesignModeState()

取得控制項的設計階段資料。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetRouteUrl(Object)

取得會對應於一組路由參數的 URL。

GetRouteUrl(RouteValueDictionary)

取得會對應於一組路由參數的 URL。

GetRouteUrl(String, Object)

取得 URL,此 URL 對應於一組路由參數及一個路由名稱。

GetRouteUrl(String, RouteValueDictionary)

取得 URL,此 URL 對應於一組路由參數及一個路由名稱。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetUniqueIDRelativeTo(Control)

傳回指定之控制項 UniqueID 屬性的前置部分。

HasControls()

判斷伺服器控制項是否包含任何子控制項。

HasEvents()

傳回值,指出控制項或任何子控制項的事件是否已註冊。

IsLiteralContent()

判斷伺服器控制項是否只儲存常值內容。

LoadControlState(Object)

SaveControlState() 方法所儲存的上一頁要求中,還原控制項狀態資訊。

LoadViewState(Object)

SaveViewState() 方法所儲存的先前頁面要求來還原檢視狀態資訊。

MapPathSecure(String)

擷取虛擬絕對路徑或相對路徑所對應至的實體路徑。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnBubbleEvent(Object, EventArgs)

決定伺服器控制項的事件是否要在頁面的 UI 伺服器控制項階層架構中向上傳遞。

OnDataBinding(EventArgs)

引發 DataBinding 事件。

OnInit(EventArgs)

引發 Init 事件。

OnLoad(EventArgs)

引發 Load 事件。

OnPreRender(EventArgs)

引發 PreRender 事件。

OnUnload(EventArgs)

引發 Unload 事件。

OpenFile(String)

取得用來讀取檔案的 Stream

RaiseBubbleEvent(Object, EventArgs)

指派事件的任何來源和它的資訊至控制項的父控制項。

RemovedControl(Control)

Control 物件的 Controls 集合中移除子控制項之後呼叫。

Render(HtmlTextWriter)

將伺服器控制項內容傳送到提供的 HtmlTextWriter 物件,以寫入要在用戶端上呈現的內容。

RenderChildren(HtmlTextWriter)

將伺服器控制項子系的內容輸出至提供的 HtmlTextWriter 物件,再由這個物件在用戶端上寫入要轉譯的內容。

RenderControl(HtmlTextWriter)

將伺服器控制項內容輸出至提供的 HtmlTextWriter 物件,並在啟用追蹤時儲存控制項的追蹤資訊。

RenderControl(HtmlTextWriter, ControlAdapter)

使用提供的 HtmlTextWriter 物件,輸出伺服器控制項內容至提供的 ControlAdapter 物件。

ResolveAdapter()

取得負責呈現指定之控制項的控制項配置器。

ResolveClientUrl(String)

取得瀏覽器可使用的 URL。

ResolveUrl(String)

將 URL 轉換為要求用戶端可使用的 URL。

SaveControlState()

儲存頁面回傳至伺服器以來,所發生的任何伺服器控制項狀態變更。

SaveViewState()

儲存自頁面回傳至伺服器以來所發生的任何伺服器控制項檢視狀態變更。

SetDesignModeState(IDictionary)

設定控制項的設計階段資料。

SetRenderMethodDelegate(RenderMethod)

指定事件處理常式委派,以呈現伺服器控制項及其內容至其父控制項。

SetTraceData(Object, Object)

使用追蹤資料機碼和追蹤資料值,設定設計階段期間追蹤呈現資料的追蹤資料。

SetTraceData(Object, Object, Object)

使用追蹤的物體、追蹤資料機碼和追蹤資料值,設定設計階段期間追蹤呈現資料的追蹤資料。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
TrackViewState()

導致對伺服器控制項的檢視狀態變更的追蹤 (Tracking),以便它們能夠儲存於伺服器控制項的 StateBag 物件。 這個物件可透過 ViewState 屬性存取。

事件

DataBinding

發生於伺服器控制項繫結至資料來源時。

Disposed

發生於伺服器控制項從記憶體釋放時,這是在要求 ASP.NET 網頁時,伺服器控制項生命週期的最後階段。

Init

發生於初始化伺服器控制項時,是其生命週期中的第一個步驟。

Load

發生於載入伺服器控制項至 Page 物件時。

PreRender

Control 物件載入之後但在呈現之前發生。

Unload

發生於伺服器控制項從記憶體卸載時。

明確介面實作

IControlBuilderAccessor.ControlBuilder

如需這個成員的說明,請參閱 ControlBuilder

IControlDesignerAccessor.GetDesignModeState()

如需這個成員的說明,請參閱 GetDesignModeState()

IControlDesignerAccessor.SetDesignModeState(IDictionary)

如需這個成員的說明,請參閱 SetDesignModeState(IDictionary)

IControlDesignerAccessor.SetOwnerControl(Control)

如需這個成員的說明,請參閱 SetOwnerControl(Control)

IControlDesignerAccessor.UserData

如需這個成員的說明,請參閱 UserData

IDataBindingsAccessor.DataBindings

如需這個成員的說明,請參閱 DataBindings

IDataBindingsAccessor.HasDataBindings

如需這個成員的說明,請參閱 HasDataBindings

IExpressionsAccessor.Expressions

如需這個成員的說明,請參閱 Expressions

IExpressionsAccessor.HasExpressions

如需這個成員的說明,請參閱 HasExpressions

IParserAccessor.AddParsedSubObject(Object)

如需這個成員的說明,請參閱 AddParsedSubObject(Object)

擴充方法

FindDataSourceControl(Control)

傳回與指定之控制項的資料控制項相關聯的資料來源。

FindFieldTemplate(Control, String)

傳回在指定之控制項的命名容器中所指定資料行的欄位樣板。

FindMetaTable(Control)

傳回包含資料控制項的中繼資料表物件。

適用於

另請參閱