EditorPartDesigner 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供 EditorPart 控制項的設計階段支援。
public ref class EditorPartDesigner : System::Web::UI::Design::WebControls::WebParts::PartDesigner
public class EditorPartDesigner : System.Web.UI.Design.WebControls.WebParts.PartDesigner
type EditorPartDesigner = class
inherit PartDesigner
Public Class EditorPartDesigner
Inherits PartDesigner
- 繼承
-
EditorPartDesigner
範例
下列程式代碼範例會建立簡單的自定義 EditorPart 控件,讓使用者變更 ToolTip 目標控件的屬性。 相關聯的 EditorPartDesigner 會驗證控件,並在設計時間將使用者輸入文字框取代為說明隱藏的標籤。
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web.UI.Design.WebControls.WebParts;
/// <summary>
/// SecretEditorPart is a custom EditorPart control that
/// allows the end user to change the ToolTip property of
/// a control by typing the value into a TextBox.
/// SecretEditorPartDesigner hides the TextBox at design
/// time via the view control and replaces it with the
/// words "The textbox is now hidden."
/// </summary>
namespace Samples.AspNet.CS.Controls
{
[Designer(typeof(SecretEditorPartDesigner))]
public class SecretEditorPart : EditorPart
{
public CheckBox UseCustom = new CheckBox();
public TextBox TTTextBox = new TextBox();
protected override void CreateChildControls()
{
base.CreateChildControls();
Controls.Add(UseCustom);
Literal lApply = new Literal();
lApply.Text = "Apply custom ToolTip<br />";
Controls.Add(lApply);
Controls.Add(TTTextBox);
}
public override bool ApplyChanges()
{
EnsureChildControls();
try
{
WebPartToEdit.ToolTip = TTTextBox.Text;
}
catch
{
return false;
}
return true;
}
public override void SyncChanges()
{
// Abstract method not implemented for this example
return;
}
}
public class SecretEditorPartDesigner : EditorPartDesigner
{
public override void Initialize(IComponent component)
{
// Validate the associated control
if (! (component is SecretEditorPart))
{
string msg = "The associated control must be of type 'SecretEditorPart'";
throw new ArgumentException(msg);
}
base.Initialize(component);
}
public override string GetDesignTimeHtml()
{
// Access the view control.
SecretEditorPart sep = (SecretEditorPart)ViewControl;
// Hide the textbox.
sep.TTTextBox.Visible = false;
// Now generate the base rendering.
string designTimeHtml = base.GetDesignTimeHtml();
// Insert some text.
string segment = "</div>";
designTimeHtml = designTimeHtml.Replace(segment,
"The textbox is now hidden." + segment);
// Return the modified rendering.
return designTimeHtml;
}
}
}
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.ComponentModel
Imports System.Security.Permissions
Imports System.Web.UI.Design.WebControls.WebParts
' SecretEditorPart is a custom EditorPart control that
' allows the end user to change the ToolTip property of
' a control by typing the value into a TextBox.
' SecretEditorPartDesigner hides the TextBox at design
' time via the view control and replaces it with the
' words "The textbox is now hidden."
Namespace Samples.AspNet.VB.Controls
<Designer(GetType(SecretEditorPartDesigner))> _
Public Class SecretEditorPart
Inherits EditorPart
Public UseCustom As New CheckBox()
Public TTTextBox As New TextBox()
Protected Overrides Sub CreateChildControls()
MyBase.CreateChildControls()
Controls.Add(UseCustom)
Dim lApply As New Literal()
lApply.Text = "Apply custom ToolTip<br />"
Controls.Add(lApply)
Controls.Add(TTTextBox)
End Sub
Public Overrides Function ApplyChanges() As Boolean
EnsureChildControls()
Try
WebPartToEdit.ToolTip = TTTextBox.Text
Catch
Return False
End Try
Return True
End Function
Public Overrides Sub SyncChanges()
' Abstract method not implemented for this example
Return
End Sub
End Class
Public Class SecretEditorPartDesigner
Inherits EditorPartDesigner
Public Overrides Sub Initialize(component As IComponent)
' Validate the associated control
If Not (TypeOf component Is SecretEditorPart) Then
Dim msg As String = "The associated control must be of type 'SecretEditorPart'"
Throw New ArgumentException(msg)
End If
MyBase.Initialize(component)
End Sub
Public Overrides Function GetDesignTimeHtml() As String
' Access the view control.
Dim sep As SecretEditorPart = DirectCast(ViewControl, SecretEditorPart)
' Hide the textbox.
sep.TTTextBox.Visible = False
' Now generate the base rendering.
Dim designTimeHtml As String = MyBase.GetDesignTimeHtml()
' Insert some text.
Dim segment As String = "</div>"
designTimeHtml = designTimeHtml.Replace(segment, "The textbox is now hidden." & segment)
' Return the modified rendering.
Return designTimeHtml
End Function
End Class
End Namespace
若要讓自定義控件轉譯,頁面必須具有 WebPartManager 控件、 EditorZone 控件 ZoneTemplate 所在的 ,以及 WebPartZone 包含要作用之自定義 EditorPart 控件的控件,如下列程式代碼範例所示。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register TagPrefix="ccl" Namespace="Samples.AspNet.CS.Controls" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>EditorPartDesigner Sample</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="WebPartManager1" runat="server">
</asp:WebPartManager><br />
<asp:EditorZone ID="EditorZone1" runat="server" Enabled="true" >
<ZoneTemplate>
<ccl:SecretEditorPart ID="SEPart1" runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Button ID="Button1" runat="server" Height="24px" Text="Button" />
</ZoneTemplate>
</asp:WebPartZone><br />
</div>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register TagPrefix="ccl" Namespace="Samples.AspNet.VB.Controls" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>EditorPartDesigner Sample</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="WebPartManager1" runat="server">
</asp:WebPartManager><br />
<asp:EditorZone ID="EditorZone1" runat="server" Enabled="true" >
<ZoneTemplate>
<ccl:SecretEditorPart ID="SEPart1" runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Button ID="Button1" runat="server" Height="24px" Text="Button" />
</ZoneTemplate>
</asp:WebPartZone><br />
</div>
</form>
</body>
</html>
EditorPart若要在運行時間使用 ,必須在頁面上啟用編輯模式。 下列程式代碼範例示範如何使用程式代碼後置檔案來執行此動作。
using System;
using System.Web.UI.WebControls.WebParts;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
{
// Make the 'Edit' verb available so the EditorZone can render
WebPartManager mgr = WebPartManager.GetCurrentWebPartManager(Page);
mgr.DisplayMode = mgr.SupportedDisplayModes["Edit"];
}
}
}
Imports System.Web.UI.WebControls.WebParts
Public Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(sender As Object, e As EventArgs)
If True Then
' Make the 'Edit' verb available so the EditorZone can render
Dim mgr As WebPartManager = WebPartManager.GetCurrentWebPartManager(Page)
mgr.DisplayMode = mgr.SupportedDisplayModes("Edit")
End If
End Sub
End Class
備註
EditorPartDesigner 是基類的 PartDesigner 公用實作,用於 EditorPart 在設計時間轉譯控件。 它會將區域資訊從關聯的控件加入設計檢視中,但不會變更父控件的功能。
如同其他控制項設計工具,您可以藉由繼承 和 EditorPartDesigner 覆GetDesignTimeHtml寫 方法,來變更自定義EditorPart控件的設計時間轉譯。 如果您想要覆寫 CreateViewControl 方法,請務必包含基底實作,以便保留區域資訊。
建構函式
EditorPartDesigner() |
初始化 EditorPartDesigner 類別的新執行個體。 |
屬性
ActionLists |
取得控制項設計工具的動作清單集合。 (繼承來源 ControlDesigner) |
AllowResize |
取得值,指出是否可在設計階段環境中調整控制項的大小。 (繼承來源 ControlDesigner) |
AssociatedComponents |
取得元件集合,該集合與設計工具管理的元件相關聯。 (繼承來源 ComponentDesigner) |
AutoFormats |
針對設計階段的相關聯控制項,取得要在 [自動格式化] 對話方塊中顯示之預先定義的自動格式化配置集合。 (繼承來源 ControlDesigner) |
Behavior |
已淘汰.
取得或設定與設計工具相關聯的 DHTML 行為。 (繼承來源 HtmlControlDesigner) |
Component |
取得這個設計工具正在設計的元件。 (繼承來源 ComponentDesigner) |
DataBindings |
取得目前控制項的資料繫結 (Data Binding) 集合。 (繼承來源 HtmlControlDesigner) |
DataBindingsEnabled |
取得值,指出關聯控制項的包含區域是否支援資料繫結。 (繼承來源 ControlDesigner) |
DesignerState |
取得物件,用於在設計階段保存關聯控制項的資料。 (繼承來源 ControlDesigner) |
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) |
SetTextualDefaultProperty |
提供 EditorPart 控制項的設計階段支援。 (繼承來源 ComponentDesigner) |
ShadowProperties |
取得覆寫使用者設定的屬性值集合。 (繼承來源 ComponentDesigner) |
ShouldCodeSerialize |
已淘汰.
取得或設定值,指出是否應該於序列化 (Serialization) 期間,在程式碼後置 (Code-Behind) 檔案中為目前設計文件建立控制項的欄位宣告。 (繼承來源 HtmlControlDesigner) |
Tag |
取得物件,表示關聯控制項的 HTML 標記項目。 (繼承來源 ControlDesigner) |
TemplateGroups |
取得範本群組集合,各範本群組包含一個或多個範本定義。 (繼承來源 ControlDesigner) |
UsePreviewControl |
取得值,表示這個設計工具是否應該使用暫存複本來產生設計階段標記,而不是使用與設計工具關聯的實際控制項。 (繼承來源 PartDesigner) |
Verbs |
取得與設計工具相關元件所支援的設計階段動詞命令 (Verb)。 (繼承來源 ComponentDesigner) |
ViewControl |
取得或設定 Web 伺服器控制項,可用於預覽設計階段的 HTML 標記。 (繼承來源 ControlDesigner) |
ViewControlCreated |
取得或設定值,指出是否已建立 |
Visible |
取得值,這個值表示控制項在設計階段是否為可見的。 (繼承來源 ControlDesigner) |
方法
明確介面實作
IDesignerFilter.PostFilterAttributes(IDictionary) |
如需這個成員的描述,請參閱 PostFilterAttributes(IDictionary) 方法。 (繼承來源 ComponentDesigner) |
IDesignerFilter.PostFilterEvents(IDictionary) |
如需這個成員的描述,請參閱 PostFilterEvents(IDictionary) 方法。 (繼承來源 ComponentDesigner) |
IDesignerFilter.PostFilterProperties(IDictionary) |
如需這個成員的描述,請參閱 PostFilterProperties(IDictionary) 方法。 (繼承來源 ComponentDesigner) |
IDesignerFilter.PreFilterAttributes(IDictionary) |
如需這個成員的描述,請參閱 PreFilterAttributes(IDictionary) 方法。 (繼承來源 ComponentDesigner) |
IDesignerFilter.PreFilterEvents(IDictionary) |
如需這個成員的描述,請參閱 PreFilterEvents(IDictionary) 方法。 (繼承來源 ComponentDesigner) |
IDesignerFilter.PreFilterProperties(IDictionary) |
如需這個成員的描述,請參閱 PreFilterProperties(IDictionary) 方法。 (繼承來源 ComponentDesigner) |
ITreeDesigner.Children |
如需這個成員的描述,請參閱 Children 屬性。 (繼承來源 ComponentDesigner) |
ITreeDesigner.Parent |
如需這個成員的描述,請參閱 Parent 屬性。 (繼承來源 ComponentDesigner) |