AppearanceEditorPart 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一个编辑器控件,使最终用户能够在关联的 WebPart 控件上编辑多个用户界面(UI)属性。 无法继承此类。
public ref class AppearanceEditorPart sealed : System::Web::UI::WebControls::WebParts::EditorPart
public sealed class AppearanceEditorPart : System.Web.UI.WebControls.WebParts.EditorPart
type AppearanceEditorPart = class
inherit EditorPart
Public NotInheritable Class AppearanceEditorPart
Inherits EditorPart
- 继承
示例
下面的代码示例演示如何在网页上声明控件 AppearanceEditorPart ,并允许它编辑控件的 WebPart 多个 UI 属性。 代码示例包含四个部分:
允许用户在 Web 部件页上更改显示模式的用户控件。
包含 EditorZone 控件和 AppearanceEditorPart 控件的网页,以及对自定义 WebPart 控件的引用。
一个包含自定义 WebPart 控件的类。
说明在浏览器中加载页面时该示例的工作原理。
用户控件的源代码来自另一个主题。 若要使此代码示例正常工作,需要从 “演练:更改 Web 部件页主题上的显示模式 ”中获取用户控件的 .ascx 文件,并将该文件放置在与本代码示例中的.aspx页相同的文件夹中。
代码示例的第二部分是网页。 它包含对 EditorZone 控件的声明性引用,其子 <zonetemplate> 元素包含对控件的声明性引用 AppearanceEditorPart 。 此外,页面使用Register程序集的指令和<aspSample:TextDisplayWebPart>控件的元素引用自定义WebPart控件。
<%@ page language="c#" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenu"
Src="DisplayModecs.ascx" %>
<%@ register tagprefix="aspSample"
Namespace="Samples.AspNet.CS.Controls"
Assembly="TextDisplayWebPartCS" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>
Text Display WebPart with AppearanceEditorPart
</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenu ID="DisplayModeMenu1" runat="server" />
<asp:webpartzone id="zone1" runat="server">
<zonetemplate>
<aspSample:TextDisplayWebPart
runat="server"
id="textwebpart"
title = "Text Content WebPart" />
</zonetemplate>
</asp:webpartzone>
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1"
runat="server"
Title="Edit TextDisplayWebPart Properties" />
</ZoneTemplate>
</asp:EditorZone>
</form>
</body>
</html>
<%@ page language="vb" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenu"
Src="DisplayModevb.ascx" %>
<%@ register tagprefix="aspSample"
Namespace="Samples.AspNet.VB.Controls"
Assembly="TextDisplayWebPartVB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>
Text Display WebPart with AppearanceEditorPart
</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenu ID="DisplayModeMenu1" runat="server" />
<asp:webpartzone id="zone1" runat="server">
<zonetemplate>
<aspSample:TextDisplayWebPart
runat="server"
id="textwebpart"
title = "Text Content WebPart" />
</zonetemplate>
</asp:webpartzone>
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1"
runat="server"
Title="Edit TextDisplayWebPart Properties" />
</ZoneTemplate>
</asp:EditorZone>
</form>
</body>
</html>
代码示例的第三部分是名为 TextDisplayWebPart 的自定义WebPart类,该类在网页中引用。 若要运行代码示例,必须编译此源代码。 可以显式编译它,并将生成的程序集放入网站的 Bin 文件夹或全局程序集缓存中。 或者,可以将源代码放在网站的App_Code文件夹中,在运行时动态编译源代码。 有关演示如何编译的演练,请参阅 演练:开发和使用自定义 Web 服务器控件。
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class TextDisplayWebPart : WebPart
{
private String _contentText = null;
TextBox input;
Label DisplayContent;
Literal lineBreak;
[Personalizable(), WebBrowsable]
public String ContentText
{
get { return _contentText; }
set { _contentText = value; }
}
protected override void CreateChildControls()
{
Controls.Clear();
DisplayContent = new Label();
DisplayContent.BackColor = Color.LightBlue;
DisplayContent.Text = this.ContentText;
this.Controls.Add(DisplayContent);
lineBreak = new Literal();
lineBreak.Text = @"<br />";
Controls.Add(lineBreak);
input = new TextBox();
this.Controls.Add(input);
Button update = new Button();
update.Text = "Set Label Content";
update.Click += new EventHandler(this.submit_Click);
this.Controls.Add(update);
}
private void submit_Click(object sender, EventArgs e)
{
// Update the label string.
if (!string.IsNullOrEmpty(input.Text))
{
_contentText = input.Text + @"<br />";
input.Text = String.Empty;
DisplayContent.Text = this.ContentText;
}
}
}
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class TextDisplayWebPart
Inherits WebPart
Private _contentText As String = Nothing
Private _fontStyle As String = Nothing
Private input As TextBox
Private DisplayContent As Label
Private lineBreak As Literal
<Personalizable(), WebBrowsable()> _
Public Property ContentText() As String
Get
Return _contentText
End Get
Set(ByVal value As String)
_contentText = value
End Set
End Property
Protected Overrides Sub CreateChildControls()
Controls.Clear()
DisplayContent = New Label()
DisplayContent.BackColor = Color.LightBlue
DisplayContent.Text = Me.ContentText
Me.Controls.Add(DisplayContent)
lineBreak = New Literal()
lineBreak.Text = "<br />"
Controls.Add(lineBreak)
input = New TextBox()
Me.Controls.Add(input)
Dim update As New Button()
update.Text = "Set Label Content"
AddHandler update.Click, AddressOf Me.submit_Click
Me.Controls.Add(update)
End Sub
Private Sub submit_Click(ByVal sender As Object, _
ByVal e As EventArgs)
' Update the label string.
If input.Text <> String.Empty Then
_contentText = input.Text + "<br />"
input.Text = String.Empty
DisplayContent.Text = Me.ContentText
End If
End Sub
End Class
End Namespace
在浏览器中加载页面时,可以在“显示模式”下拉列表控件中选择“编辑模式”以切换到编辑模式。 可以单击控件标题栏中的 TextDisplayWebPart 谓词菜单(向下箭头),然后单击“ 编辑” 以编辑控件。 当编辑 UI 可见时,可以看到该 AppearanceEditorPart 控件。 如果在编辑 UI 中进行了一些更改并单击“ 应用 ”按钮,则可以使用 “显示模式 ”下拉列表返回页面浏览模式,并查看编辑更改的完整效果。
注解
该 AppearanceEditorPart 类是派生自该类的 EditorPart 编辑器控件,用于编辑影响关联 WebPart 或其他服务器控件外观的属性。
该 AppearanceEditorPart 控件使最终用户能够编辑控件的 WebPart 多个 UI 属性。 用于编辑每个属性值的页面中显示的控件类型在下表的相邻单元格中列出。
| 财产 | 用于编辑属性的控件 |
|---|---|
| Title | TextBox控件用于设置标题的文本。 |
| ChromeType | DropDownList控件用于选择使用哪种类型的标题和边框选项。 |
| Direction | DropDownList控件用于选择内容在页面上流动的方向。 |
| Height | TextBox控件用于设置高度的数字,并且DropDownList控件用于选择单位。 |
| Width | TextBox控件用于设置高度的数字,并且DropDownList控件用于选择单位。 |
| Hidden | CheckBox控件用于指示控件是否隐藏。 |
仅当 Web 部件页面处于编辑模式,并且已选择特定WebPart控件进行编辑时,该AppearanceEditorPart控件才可见。 与所有其他EditorPart控件一样,该AppearanceEditorPart控件驻留在一个EditorZone区域中。
重要
区域 EditorZone 只能 EditorPart 包含控件,控件 EditorPart 不能放置在任何其他类型的区域中。
该 AppearanceEditorPart 类具有最少的属性集。 该 Title 属性用于获取或设置在控件可见时显示为标题的字符串。 该 DefaultButton 属性设置控件中的 Panel 继承属性,以便接收控件中 AppearanceEditorPart 焦点的默认控件与基本 Panel 控件中的默认值相同。
该 AppearanceEditorPart 类还有两个重要的方法。 该方法 SyncChanges 重写类中的 EditorPart 基方法。 此方法至关重要,因为它允许从它正在编辑的 WebPart 控件中获取属性值,并将其分配给编辑器控件中的字段。 该方法 ApplyChanges 也很重要,因为它接受编辑控件中用户设置的值,并更新正在编辑的控件上的这些属性值。
在大多数情况下, AppearanceEditorPart 控件应通过声明 <asp:appearanceditorpart> 元素内部 <zonetemplate> 的元素(而该元素又由 <asp:editorzone> 网页上的元素包含)来使用页面持久性格式。
若要编辑控件的其他属性和行为 WebPart ,可以使用 Web 部件控件集提供的其他 EditorPart 控件。 这些控件包括 、BehaviorEditorPartLayoutEditorPart和 。PropertyGridEditorPart。 提供的 EditorPart 控件应提供编辑控件所需的 WebPart 大多数编辑功能,但也可以通过从 EditorPart 类继承创建自定义编辑器控件。 有关代码示例,请参阅 EditorPart 类概述主题。
注释
为了改进辅助功能,控件 AppearanceEditorPart 在元素内 <fieldset> 呈现。 该 <fieldset> 元素将用于在控件中 AppearanceEditorPart 编辑的相关控件集进行分组,并有助于在视觉对象(如普通 Web 浏览器)和面向语音的用户代理(如屏幕阅读软件)的这些控件之间进行选项卡式导航。
可及性
默认情况下为此控件呈现的标记可能不符合辅助功能标准,例如 Web 内容辅助功能准则 1.0 (WCAG) 优先级 1 准则。 有关此控件的辅助功能支持的详细信息,请参阅 ASP.NET 控件和辅助功能。
构造函数
| 名称 | 说明 |
|---|---|
| AppearanceEditorPart() |
初始化 AppearanceEditorPart 类的新实例。 |
属性
| 名称 | 说明 |
|---|---|
| AccessKey |
获取或设置访问密钥,使你能够快速导航到 Web 服务器控件。 (继承自 WebControl) |
| Adapter |
获取控件的特定于浏览器的适配器。 (继承自 Control) |
| AppRelativeTemplateSourceDirectory |
获取或设置包含此控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
| Attributes |
获取不对应于控件上的属性的任意属性(仅用于呈现)的集合。 (继承自 WebControl) |
| BackColor |
获取或设置 Web 服务器控件的背景色。 (继承自 WebControl) |
| BackImageUrl |
获取或设置面板控件的背景图像的 URL。 (继承自 Panel) |
| BindingContainer |
获取包含此控件的数据绑定的控件。 (继承自 Control) |
| BorderColor |
获取或设置 Web 控件的边框颜色。 (继承自 WebControl) |
| BorderStyle |
获取或设置 Web 服务器控件的边框样式。 (继承自 WebControl) |
| BorderWidth |
获取或设置 Web 服务器控件的边框宽度。 (继承自 WebControl) |
| ChildControlsCreated |
获取一个值,该值指示是否已创建服务器控件的子控件。 (继承自 Control) |
| ChromeState |
获取或设置部件控件处于最小化状态还是正常状态。 (继承自 Part) |
| ChromeType |
获取或设置框架 Web 部件控件的边框类型。 (继承自 Part) |
| ClientID |
获取由 ASP.NET 生成的 HTML 标记的控件 ID。 (继承自 Control) |
| ClientIDMode |
获取或设置用于生成属性值的 ClientID 算法。 (继承自 Control) |
| ClientIDSeparator |
获取一个表示属性中使用的 ClientID 分隔符的字符值。 (继承自 Control) |
| Context |
HttpContext获取与当前 Web 请求的服务器控件关联的对象。 (继承自 Control) |
| Controls |
获取一个 ControlCollection 对象,该对象包含用户界面层次结构中指定服务器控件的子控件。 (继承自 Part) |
| ControlStyle |
获取 Web 服务器控件的样式。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
| ControlStyleCreated |
获取一个值,该值 Style 指示是否已为 ControlStyle 属性创建对象。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
| CssClass |
获取或设置由客户端上的 Web 服务器控件呈现的级联样式表 (CSS) 类。 (继承自 WebControl) |
| DataItemContainer |
获取对命名容器的引用(如果命名容器实现 IDataItemContainer)。 (继承自 Control) |
| DataKeysContainer |
获取对命名容器的引用(如果命名容器实现 IDataKeysControl)。 (继承自 Control) |
| DefaultButton |
重写从 Panel 控件继承的基属性,以隐藏设计器中的属性,并阻止它受到主题的影响。 虽然它是公共的,但此属性用于此控件的默认呈现,而不是从开发人员代码调用。 |
| Description |
获取或设置一个简短短语,该短语汇总部件控件的作用,以便在部件控件的工具提示和目录中使用。 (继承自 Part) |
| DesignMode |
获取一个值,该值指示控件是否在设计图面上使用。 (继承自 Control) |
| Direction |
获取或设置显示控件中包含 Panel 文本的控件的方向。 (继承自 Panel) |
| Display |
获取一个值,该值指示控件在关联 WebPart 控件处于编辑模式时是否应显示。 (继承自 EditorPart) |
| DisplayTitle |
获取一个字符串,其中包含控件标题栏中 EditorPart 显示的标题文本。 (继承自 EditorPart) |
| Enabled |
获取或设置一个值,该值指示是否启用 Web 服务器控件。 (继承自 WebControl) |
| EnableTheming |
获取或设置一个值,该值指示主题是否应用于此控件。 (继承自 WebControl) |
| EnableViewState |
获取或设置一个值,该值指示服务器控件是否将视图状态及其包含的任何子控件的视图状态保存到请求客户端。 (继承自 Control) |
| Events |
获取控件的事件处理程序委托的列表。 此属性为只读。 (继承自 Control) |
| Font |
获取与 Web 服务器控件关联的字体属性。 (继承自 WebControl) |
| ForeColor |
获取或设置 Web 服务器控件的前景色(通常是文本的颜色)。 (继承自 WebControl) |
| GroupingText |
获取或设置面板控件中包含的控件组的标题。 (继承自 Panel) |
| HasAttributes |
获取一个值,该值指示控件是否设置了属性。 (继承自 WebControl) |
| HasChildViewState |
获取一个值,该值指示当前服务器控件的子控件是否具有保存的视图状态设置。 (继承自 Control) |
| Height |
获取或设置 Web 服务器控件的高度。 (继承自 WebControl) |
| HorizontalAlign |
获取或设置面板中内容的水平对齐方式。 (继承自 Panel) |
| ID |
获取或设置分配给服务器控件的编程标识符。 (继承自 Control) |
| IdSeparator |
获取用于分隔控件标识符的字符。 (继承自 Control) |
| IsChildControlStateCleared |
获取一个值,该值指示此控件中包含的控件是否具有控件状态。 (继承自 Control) |
| IsEnabled |
获取一个值,该值指示是否启用控件。 (继承自 WebControl) |
| IsTrackingViewState |
获取一个值,该值指示服务器控件是否正在保存对其视图状态的更改。 (继承自 Control) |
| IsViewStateEnabled |
获取一个值,该值指示是否为此控件启用视图状态。 (继承自 Control) |
| LoadViewStateByID |
获取一个值,该值指示控件是否参与加载其视图状态,而不是 ID 索引。 (继承自 Control) |
| NamingContainer |
获取对服务器控件命名容器的引用,该容器创建唯一的命名空间,用于区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
| Page |
获取对 Page 包含服务器控件的实例的引用。 (继承自 Control) |
| Parent |
获取对页面控件层次结构中服务器控件的父控件的引用。 (继承自 Control) |
| RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与 ASP.NET 版本兼容。 (继承自 Control) |
| ScrollBars |
获取或设置控件中 Panel 滚动条的可见性和位置。 (继承自 Panel) |
| Site |
获取有关在设计图面上呈现时承载当前控件的容器的信息。 (继承自 Control) |
| SkinID |
获取或设置要应用于控件的皮肤。 (继承自 WebControl) |
| Style |
获取文本属性的集合,该属性将在 Web 服务器控件的外部标记上呈现为样式属性。 (继承自 WebControl) |
| SupportsDisabledAttribute |
获取一个值,该值指示当控件的属性为控件的属性时,控件是否应将呈现的 IsEnabled HTML 元素的属性 |
| TabIndex |
获取或设置 Web 服务器控件的选项卡索引。 (继承自 WebControl) |
| TagKey |
HtmlTextWriterTag获取与此 Web 服务器控件对应的值。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
| TagName |
获取控件标记的名称。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
| TemplateControl |
获取或设置对包含此控件的模板的引用。 (继承自 Control) |
| TemplateSourceDirectory |
获取包含当前服务器控件的 Page 虚拟 UserControl 目录。 (继承自 Control) |
| Title |
获取或设置编辑器控件的标题。 |
| ToolTip |
获取或设置鼠标指针悬停在 Web 服务器控件上时显示的文本。 (继承自 WebControl) |
| UniqueID |
获取服务器控件的唯一分层限定标识符。 (继承自 Control) |
| ValidateRequestMode |
获取或设置一个值,该值指示控件是否检查浏览器的客户端输入是否存在潜在危险值。 (继承自 Control) |
| ViewState |
获取状态信息的字典,该字典允许跨同一页的多个请求保存和还原服务器控件的视图状态。 (继承自 Control) |
| ViewStateIgnoresCase |
获取一个值,该值指示对象是否 StateBag 不区分大小写。 (继承自 Control) |
| ViewStateMode |
获取或设置此控件的视图状态模式。 (继承自 Control) |
| Visible |
获取或设置一个值,该值指示服务器控件是否呈现为页面上的 UI。 (继承自 Control) |
| WebPartManager |
获取对 WebPartManager 与当前网页关联的控件的引用。 (继承自 EditorPart) |
| WebPartToEdit |
获取对当前正在编辑的控件的 WebPart 引用。 (继承自 EditorPart) |
| Width |
获取或设置 Web 服务器控件的宽度。 (继承自 WebControl) |
| Wrap |
获取或设置一个值,该值指示内容是否包装在面板中。 (继承自 Panel) |
| Zone |
获取对 EditorZoneBase 包含控件 EditorPart 的区域的引用。 (继承自 EditorPart) |
方法
活动
| 名称 | 说明 |
|---|---|
| DataBinding |
当服务器控件绑定到数据源时发生。 (继承自 Control) |
| Disposed |
在从内存中释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生命周期的最后阶段。 (继承自 Control) |
| Init |
在初始化服务器控件时发生,这是其生命周期中的第一步。 (继承自 Control) |
| Load |
在将服务器控件加载到对象中 Page 时发生。 (继承自 Control) |
| PreRender |
在 Control 加载对象但在呈现之前发生。 (继承自 Control) |
| Unload |
从内存中卸载服务器控件时发生。 (继承自 Control) |
显式接口实现
扩展方法
| 名称 | 说明 |
|---|---|
| EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>) |
为指定的数据控件启用动态数据行为。 |
| EnableDynamicData(INamingContainer, Type, Object) |
为指定的数据控件启用动态数据行为。 |
| EnableDynamicData(INamingContainer, Type) |
为指定的数据控件启用动态数据行为。 |
| FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
| FindFieldTemplate(Control, String) |
返回指定控件命名容器中指定列的字段模板。 |
| FindMetaTable(Control) |
返回包含数据控件的元表对象。 |
| GetDefaultValues(INamingContainer) |
获取指定数据控件的默认值的集合。 |
| GetMetaTable(INamingContainer) |
获取指定数据控件的表元数据。 |
| SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>) |
设置指定数据控件的表元数据和默认值映射。 |
| SetMetaTable(INamingContainer, MetaTable, Object) |
设置指定数据控件的表元数据和默认值映射。 |
| SetMetaTable(INamingContainer, MetaTable) |
设置指定数据控件的表元数据。 |
| TryGetMetaTable(INamingContainer, MetaTable) |
确定表元数据是否可用。 |