ListControlDesigner 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
可作為設計工具的基底類別,在 Visual Web 設計工具提供衍生自 ListControl 抽象類別的控制項設計階段支援。
public ref class ListControlDesigner : System::Web::UI::Design::ControlDesigner, System::Web::UI::Design::IDataSourceProvider
public ref class ListControlDesigner : System::Web::UI::Design::WebControls::DataBoundControlDesigner
public class ListControlDesigner : System.Web.UI.Design.ControlDesigner, System.Web.UI.Design.IDataSourceProvider
[System.Web.UI.Design.SupportsPreviewControl(true)]
public class ListControlDesigner : System.Web.UI.Design.WebControls.DataBoundControlDesigner
type ListControlDesigner = class
inherit ControlDesigner
interface IDataSourceProvider
[<System.Web.UI.Design.SupportsPreviewControl(true)>]
type ListControlDesigner = class
inherit DataBoundControlDesigner
Public Class ListControlDesigner
Inherits ControlDesigner
Implements IDataSourceProvider
Public Class ListControlDesigner
Inherits DataBoundControlDesigner
- 繼承
- 繼承
- 衍生
- 屬性
- 實作
範例
本節提供兩個程式代碼範例。 第一個示範如何衍生自定義控件設計工具。 第二個示範如何將衍生控件與設計工具產生關聯。
下列程式代碼範例示範如何建立名為 SimpleRadioButtonListDesigner
的類別,該類別繼承自 ListControlDesigner 類別。 類別 SimpleRadioButtonListDesigner
會 GetDesignTimeHtml覆寫、 Initialize和 OnDataSourceChanged 方法。 類別 SimpleRadioButtonListDesigner
會在設計介面上顯示 SimpleRadioButtonList
控制件。
using System;
using System.ComponentModel;
using System.Drawing;
using System.Diagnostics;
using System.Web.UI.WebControls;
using System.Web.UI.Design.WebControls;
namespace Examples.CS.WebControls.Design
{
// Create the SimpleRadioButtonListDesigner, which provides
// design-time support for a custom list class.
public class SimpleRadioButtonListDesigner : ListControlDesigner
{
SimpleRadioButtonList simpleRadioButtonList;
bool changedDataSource;
// Create the markup to display the control on the design surface.
public override string GetDesignTimeHtml()
{
string designTimeMarkup = null;
// Create variables to access the control
// item collection and back color.
ListItemCollection items = simpleRadioButtonList.Items;
Color oldBackColor = simpleRadioButtonList.BackColor;
// Check the property values and render the markup
// on the design surface accordingly.
try
{
if (oldBackColor == Color.Empty)
simpleRadioButtonList.BackColor = Color.Gainsboro;
if (changedDataSource)
items.Add("Updated to a new data source: " +
DataSource + ".");
// Call the base method to generate the markup.
designTimeMarkup = base.GetDesignTimeHtml();
}
catch (Exception ex)
{
// Catch any exceptions that occur.
designTimeMarkup = GetErrorDesignTimeHtml(ex);
}
finally
{
// Set the properties back to their original state.
simpleRadioButtonList.BackColor = oldBackColor;
items.Clear();
}
return designTimeMarkup;
} // GetDesignTimeHtml
public override void Initialize(IComponent component)
{
// Ensure that only a SimpleRadioButtonList can be
// created in this designer.
Debug.Assert(
component is SimpleRadioButtonList,
"An invalid SimpleRadioButtonList control was initialized.");
simpleRadioButtonList = (SimpleRadioButtonList)component;
base.Initialize(component);
} // Initialize
// If the data source changes, set a boolean variable.
public override void OnDataSourceChanged()
{
changedDataSource = true;
} // OnDataSourceChanged
} // SimpleRadioButtonListDesigner
} // Examples.CS.WebControls.Design
Imports System.ComponentModel
Imports System.Drawing
Imports System.Diagnostics
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design.WebControls
Namespace Examples.VB.WebControls.Design
' Create the SimpleRadioButtonListDesigner, which provides
' design-time support for a custom list class.
Public Class SimpleRadioButtonListDesigner
Inherits ListControlDesigner
Private simpleRadioButtonList As SimpleRadioButtonList
Private changedDataSource As Boolean
' Create the markup to display the control on the design surface.
Public Overrides Function GetDesignTimeHtml() As String
Dim designTimeHtml As String = String.Empty
' Create variables to access the control's
' item collection and back color.
Dim items As ListItemCollection = simpleRadioButtonList.Items
Dim oldBackColor As Color = simpleRadioButtonList.BackColor
' Check the property values and render the markup
' on the design surface accordingly.
Try
If (Color.op_Equality(oldBackColor, Color.Empty)) Then
simpleRadioButtonList.BackColor = Color.Gainsboro
End If
If (changedDataSource) Then
items.Add( _
"Updated to a new data source: " & DataSource & ".")
End If
designTimeHtml = MyBase.GetDesignTimeHtml()
Catch ex As Exception
' Catch any exceptions that occur.
MyBase.GetErrorDesignTimeHtml(ex)
Finally
' Set the properties back to their original state.
simpleRadioButtonList.BackColor = oldBackColor
items.Clear()
End Try
Return designTimeHtml
End Function ' GetDesignTimeHtml
Public Overrides Sub Initialize(ByVal component As IComponent)
' Ensure that only a SimpleRadioButtonList can be created
' in this designer.
Debug.Assert( _
TypeOf component Is SimpleRadioButtonList, _
"An invalid SimpleRadioButtonList control was initialized.")
simpleRadioButtonList = CType(component, SimpleRadioButtonList)
MyBase.Initialize(component)
End Sub
' If the data source changes, set a Boolean variable.
Public Overrides Sub OnDataSourceChanged()
changedDataSource = True
End Sub
End Class
End Namespace ' Examples.VB.WebControls.Design
下列程式代碼範例會SimpleRadioButtonList
從 RadioButtonList 控件衍生控件,並示範如何使用 DesignerAttribute 類別將控件與其設計工具SimpleRadioButtonListDesigner
、類別產生關聯SimpleRadioButtonList
。
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Security.Permissions;
namespace Examples.CS.WebControls.Design
{
// The SimpleRadioButtonList is a copy of the RadioButtonList.
// It uses the SimpleRadioButtonListDesigner for design-time support.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
[Designer(typeof(Examples.CS.WebControls.Design.
SimpleRadioButtonListDesigner))]
[DataBindingHandler(typeof(Examples.CS.WebControls.Design.
SimpleRadioButtonListDataBindingHandler))]
public class SimpleRadioButtonList : RadioButtonList
{
} // SimpleRadioButtonList
} // Examples.CS.WebControls.Design
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Security.Permissions
Namespace Examples.VB.WebControls.Design
' The SimpleRadioButtonList is a copy of the RadioButtonList.
' It uses the SimpleRadioButtonListDesigner for design-time support.
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<DesignerAttribute(GetType(Examples.VB.WebControls.Design. _
SimpleRadioButtonListDesigner))> _
<DataBindingHandler(GetType(Examples.VB.WebControls.Design. _
SimpleRadioButtonListDataBindingHandler))> _
Public Class SimpleRadioButtonList
Inherits RadioButtonList
End Class
End Namespace ' Examples.VB.WebControls.Design
備註
在 Visual Web Designer 中,當使用者從 [來源] 切換至 [設計] 檢視時,會剖析描述衍生自 ListControl 類別之控件的標記原始程式碼,並在設計介面上建立控件的設計時間版本。 當使用者切換回 [來源] 檢視時,設計時間控件會保存到標記原始程式碼,並編輯成網頁的標記。 類別 ListControlDesigner 可作為設計工具的基類,在 Visual Web Designer 中針對衍生自 ListControl的控件提供設計時間支援。
類別 ListControlDesigner 屬性提供下列功能:
屬性 ActionLists 會傳 DesignerActionListCollection 回 物件,該物件通常包含衍生自 DesignerActionList 設計工具繼承樹狀結構中每個層級的物件。
DataTextField和 DataValueField 屬性可讓您存取衍生自 ListControl 類別之控件的對應屬性。 並DataTextFieldDataValueField指出數據源的欄位,分別提供清單專案的文字和值內容。
類別 ListControlDesigner 方法提供下列功能:
方法會將 DataBind 衍生自 ListControl 的相關聯控件系結至設計時間數據源。
方法 GetDesignTimeHtml 會傳回標記,用來在設計時間呈現相關聯的控件。
方法 GetSelectedDataSource 會從相關聯的控件容器傳回設計時間 DataSource 元件。
方法 GetResolvedSelectedDataSource 會 DataSource 從控件容器傳回 ,解析為 控件的設計時間 DataMember 屬性。
方法 Initialize 會準備設計工具,以檢視及設計衍生自 的 ListControl相關聯控件。
OnDataSourceChanged當相關聯控件的 變更時DataSource,會呼叫 方法。
方法 PreFilterProperties 可用來從 中移除其他屬性、新增其他屬性,或從衍生自 ListControl之相關聯控件的陰影屬性。
建構函式
ListControlDesigner() |
初始化 ListControlDesigner 類別的新執行個體。 |
屬性
ActionLists |
取得設計工具的設計工具動作清單集合。 |
ActionLists |
取得控制項設計工具的動作清單集合。 (繼承來源 ControlDesigner) |
AllowResize |
取得值,指出是否可在設計階段環境中調整控制項的大小。 (繼承來源 ControlDesigner) |
AssociatedComponents |
取得元件集合,該集合與設計工具管理的元件相關聯。 (繼承來源 ComponentDesigner) |
AutoFormats |
針對設計階段的相關聯控制項,取得要在 [自動格式化] 對話方塊中顯示之預先定義的自動格式化配置集合。 (繼承來源 ControlDesigner) |
Behavior |
已淘汰.
取得或設定與設計工具相關聯的 DHTML 行為。 (繼承來源 HtmlControlDesigner) |
Component |
取得這個設計工具正在設計的元件。 (繼承來源 ComponentDesigner) |
DataBindings |
取得目前控制項的資料繫結 (Data Binding) 集合。 (繼承來源 HtmlControlDesigner) |
DataBindingsEnabled |
取得值,指出關聯控制項的包含區域是否支援資料繫結。 (繼承來源 ControlDesigner) |
DataMember |
取得或設定控制項的資料成員。 |
DataMember |
取得基礎資料繫結控制項的受遮蔽 DataMember 屬性。 (繼承來源 DataBoundControlDesigner) |
DataSource |
取得或設定控制項的資料來源屬性。 |
DataSource |
取得或設定關聯控制項的 DataSource 屬性值。 (繼承來源 BaseDataBoundControlDesigner) |
DataSourceDesigner |
取得基礎資料繫結控制項的資料來源設計工具。 (繼承來源 DataBoundControlDesigner) |
DataSourceID |
取得或設定基礎 DataSourceID 物件的 BaseDataBoundControl 屬性值。 (繼承來源 BaseDataBoundControlDesigner) |
DataTextField |
取得或設定控制項的資料文字欄位。 |
DataValueField |
取得或設定控制項的資料值欄位。 |
DesignerState |
取得物件,用於在設計階段保存關聯控制項的資料。 (繼承來源 ControlDesigner) |
DesignerView |
取得與這個設計工具之資料來源關聯的 DesignerDataSourceView 物件。 (繼承來源 DataBoundControlDesigner) |
DesignTimeElement |
已淘汰.
取得設計階段物件,表示與設計介面上 HtmlControlDesigner 物件相關聯的控制項。 (繼承來源 HtmlControlDesigner) |
DesignTimeElementView |
已淘汰.
取得控制項設計工具的檢視控制項物件。 (繼承來源 ControlDesigner) |
DesignTimeHtmlRequiresLoadComplete |
已淘汰.
取得值,指出設計主應用程式在呼叫 GetDesignTimeHtml 方法之前是否必須完成載入。 (繼承來源 ControlDesigner) |
Expressions |
在設計階段取得目前控制項的運算式繫結。 (繼承來源 HtmlControlDesigner) |
HidePropertiesInTemplateMode |
取得值,指示當控制項處於樣板模式時,關聯控制項的屬性是否會隱藏。 (繼承來源 ControlDesigner) |
ID |
取得或設定控制項的 ID 字串。 (繼承來源 ControlDesigner) |
InheritanceAttribute |
取得屬性 (Attribute),表示相關元件的繼承 (Inheritance) 型別。 (繼承來源 ComponentDesigner) |
Inherited |
取得值,表示是否要繼承這個元件。 (繼承來源 ComponentDesigner) |
InTemplateMode |
取得值,指出控制項在設計主應用程式中處於樣板檢視模式還是編輯模式。 InTemplateMode 屬性是唯讀的。 (繼承來源 ControlDesigner) |
IsDirty |
已淘汰.
取得或設定值,指出 Web 伺服器控制項是否已標記為變更。 (繼承來源 ControlDesigner) |
ParentComponent |
取得這個設計工具的父元件。 (繼承來源 ComponentDesigner) |
ReadOnly |
已淘汰.
取得或設定值,指出控制項屬性於設計階段是否為唯讀。 (繼承來源 ControlDesigner) |
RootDesigner |
為包含關聯控制項的 Web Form 網頁,取得控制項設計工具。 (繼承來源 ControlDesigner) |
SampleRowCount |
取得資料繫結控制項會在設計介面上顯示的資料列數。 (繼承來源 DataBoundControlDesigner) |
SetTextualDefaultProperty |
可作為設計工具的基底類別,在 Visual Web 設計工具提供衍生自 ListControl 抽象類別的控制項設計階段支援。 (繼承來源 ComponentDesigner) |
ShadowProperties |
取得覆寫使用者設定的屬性值集合。 (繼承來源 ComponentDesigner) |
ShouldCodeSerialize |
已淘汰.
取得或設定值,指出是否應該於序列化 (Serialization) 期間,在程式碼後置 (Code-Behind) 檔案中為目前設計文件建立控制項的欄位宣告。 (繼承來源 HtmlControlDesigner) |
Tag |
取得物件,表示關聯控制項的 HTML 標記項目。 (繼承來源 ControlDesigner) |
TemplateGroups |
取得範本群組集合,各範本群組包含一個或多個範本定義。 (繼承來源 ControlDesigner) |
UseDataSourcePickerActionList |
取得值,這個值表示關聯的控制項是否應該呈現其預設動作清單。 |
UsePreviewControl |
取得值,其中該值會表示控制項設計工具是否使用暫時預覽控制項以產生設計階段 HTML 標記。 (繼承來源 ControlDesigner) |
Verbs |
取得與設計工具相關元件所支援的設計階段動詞命令 (Verb)。 (繼承來源 ComponentDesigner) |
ViewControl |
取得或設定 Web 伺服器控制項,可用於預覽設計階段的 HTML 標記。 (繼承來源 ControlDesigner) |
ViewControlCreated |
取得或設定值,指出是否已建立 |
Visible |
取得值,這個值表示控制項在設計階段是否為可見的。 (繼承來源 ControlDesigner) |