CatalogZone 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用作 Web 部件控件集内的主控件,用于在网页中承载 CatalogPart 控件。
public ref class CatalogZone : System::Web::UI::WebControls::WebParts::CatalogZoneBase
public class CatalogZone : System.Web.UI.WebControls.WebParts.CatalogZoneBase
type CatalogZone = class
inherit CatalogZoneBase
Public Class CatalogZone
Inherits CatalogZoneBase
- 继承
示例
下面的代码示例演示如何以声明方式和编程方式使用 CatalogZone 控件。 该代码示例包含四个部分:
一个用户控件,可用于更改网页上的显示模式。
包含自定义 CatalogZone 控件的源代码的文件,以及由目录导入并添加到网页的自定义 WebPart 控件。
声明用户控件和自定义 CatalogZone 控件的网页。
有关如何运行示例的说明。
此代码示例的第一部分是用户控件,使用户能够更改网页上的显示模式。 有关此控件中的显示模式和源代码说明的详细信息,请参阅 演练:更改 Web 部件页上的显示模式。
<%@ control language="C#" classname="DisplayModeMenuCS"%>
<script runat="server">
// Use a field to reference the current WebPartManager.
WebPartManager _manager;
void Page_Init(object sender, EventArgs e)
{
Page.InitComplete += new EventHandler(InitComplete);
}
void InitComplete(object sender, System.EventArgs e)
{
_manager = WebPartManager.GetCurrentWebPartManager(Page);
String browseModeName = WebPartManager.BrowseDisplayMode.Name;
// Fill the dropdown with the names of supported display modes.
foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
{
String modeName = mode.Name;
// Make sure a mode is enabled before adding it.
if (mode.IsEnabled(_manager))
{
ListItem item = new ListItem(modeName, modeName);
DisplayModeDropdown.Items.Add(item);
}
}
// If shared scope is allowed for this user, display the scope-switching
// UI and select the appropriate radio button for the current user scope.
if (_manager.Personalization.CanEnterSharedScope)
{
Panel2.Visible = true;
if (_manager.Personalization.Scope == PersonalizationScope.User)
RadioButton1.Checked = true;
else
RadioButton2.Checked = true;
}
}
// Change the page to the selected display mode.
void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)
{
String selectedMode = DisplayModeDropdown.SelectedValue;
WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];
if (mode != null)
_manager.DisplayMode = mode;
}
// Set the selected item equal to the current display mode.
void Page_PreRender(object sender, EventArgs e)
{
ListItemCollection items = DisplayModeDropdown.Items;
int selectedIndex =
items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
DisplayModeDropdown.SelectedIndex = selectedIndex;
}
// Reset all of a user's personalization data for the page.
protected void LinkButton1_Click(object sender, EventArgs e)
{
_manager.Personalization.ResetPersonalizationState();
}
// If not in User personalization scope, toggle into it.
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
if (_manager.Personalization.Scope == PersonalizationScope.Shared)
_manager.Personalization.ToggleScope();
}
// If not in Shared scope, and if user is allowed, toggle the scope.
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
if (_manager.Personalization.CanEnterSharedScope &&
_manager.Personalization.Scope == PersonalizationScope.User)
_manager.Personalization.ToggleScope();
}
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="230"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" >
<asp:Label ID="Label1" runat="server"
Text=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120"
AssociatedControlID="DisplayModeDropdown"/>
<asp:DropDownList ID="DisplayModeDropdown" runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
<asp:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</asp:Panel>
</div>
<%@ control language="vb" classname="DisplayModeMenuVB"%>
<script runat="server">
' Use a field to reference the current WebPartManager.
Dim _manager As WebPartManager
Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
AddHandler Page.InitComplete, AddressOf InitComplete
End Sub
Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs)
_manager = WebPartManager.GetCurrentWebPartManager(Page)
Dim browseModeName As String = WebPartManager.BrowseDisplayMode.Name
' Fill the dropdown with the names of supported display modes.
Dim mode As WebPartDisplayMode
For Each mode In _manager.SupportedDisplayModes
Dim modeName As String = mode.Name
' Make sure a mode is enabled before adding it.
If mode.IsEnabled(_manager) Then
Dim item As New ListItem(modeName, modeName)
DisplayModeDropdown.Items.Add(item)
End If
Next mode
' If shared scope is allowed for this user, display the scope-switching
' UI and select the appropriate radio button for the current user scope.
If _manager.Personalization.CanEnterSharedScope Then
Panel2.Visible = True
If _manager.Personalization.Scope = PersonalizationScope.User Then
RadioButton1.Checked = True
Else
RadioButton2.Checked = True
End If
End If
End Sub
' Change the page to the selected display mode.
Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As EventArgs)
Dim selectedMode As String = DisplayModeDropdown.SelectedValue
Dim mode As WebPartDisplayMode = _
_manager.SupportedDisplayModes(selectedMode)
If Not (mode Is Nothing) Then
_manager.DisplayMode = mode
End If
End Sub
' Set the selected item equal to the current display mode.
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
Dim items As ListItemCollection = DisplayModeDropdown.Items
Dim selectedIndex As Integer = _
items.IndexOf(items.FindByText(_manager.DisplayMode.Name))
DisplayModeDropdown.SelectedIndex = selectedIndex
End Sub
' Reset all of a user's personalization data for the page.
Protected Sub LinkButton1_Click(ByVal sender As Object, _
ByVal e As EventArgs)
_manager.Personalization.ResetPersonalizationState()
End Sub
' If not in User personalization scope, toggle into it.
Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, _
ByVal e As EventArgs)
If _manager.Personalization.Scope = PersonalizationScope.Shared Then
_manager.Personalization.ToggleScope()
End If
End Sub
' If not in Shared scope, and if user is allowed, toggle the scope.
Protected Sub RadioButton2_CheckedChanged(ByVal sender As Object, _
ByVal e As EventArgs)
If _manager.Personalization.CanEnterSharedScope AndAlso _
_manager.Personalization.Scope = PersonalizationScope.User Then
_manager.Personalization.ToggleScope()
End If
End Sub
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="230"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" >
<asp:Label ID="Label1" runat="server"
Text=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120"
AssociatedControlID="DisplayModeDropdown"/>
<asp:DropDownList ID="DisplayModeDropdown" runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
<asp:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</asp:Panel>
</div>
代码示例的第二部分包含自定义 CatalogZone 和 WebPart 控件的代码。 控件的代码 CatalogZone 演示如何从 CatalogZone 类继承并通过在构造函数中设置一些默认属性值来自定义其属性。 源代码还演示如何创建名为 的TextDisplayWebPart
自定义WebPart类。 这是与 关联的控件。将作为此代码示例的一部分导入的 WebPart 说明文件。 使用 ImportCatalogPart 网页上的 控件导入说明文件后,你将能够将该 TextDisplayWebPart
控件添加到页面,该控件完全预配置为说明文件中的指定。
若要运行代码示例,必须编译此源代码。 可以显式编译它,并将生成的程序集放入网站的 Bin 文件夹或全局程序集缓存中。 或者,可以将源代码放在站点的“App_Code”文件夹中,并在运行时对其进行动态编译。 此代码示例使用动态编译,因此,如果要以这种方式运行示例,请命名源代码文件,并将其添加到 Web 应用程序的根目录的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
{
// Create a customized CatalogZone control by setting
// some properties in the constructor.
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyCatalogZone : CatalogZone
{
public MyCatalogZone()
{
this.HeaderText = "My Company Catalog";
this.HeaderCloseVerb.Text = "Close Catalog";
this.CloseVerb.Text = "Close Catalog";
}
}
// Create a custom WebPart control to add to a WebPartZone.
[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
' Create a custom CatalogZone control by setting some
' properties in the constructor.
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyCatalogZone
Inherits CatalogZone
Public Sub New()
Me.HeaderText = "My Company Catalog"
Me.HeaderCloseVerb.Text = "Close Catalog"
Me.CloseVerb.Text = "Close Catalog"
End Sub
End Class
' Create a custom WebPart to add to a WebPartZone.
<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
代码示例的第三部分是包含控件的网页。 它包含 Register
针对用户控件的 指令,以及包含自定义控件的源文件的指令。 请注意,在第二个指令中,它不会命名程序集,因为示例不使用程序集,因此它使用动态编译,并将源代码放置在 App_Code 子文件夹中。 网页声明控件 WebPartZone ,在其子 <zonetemplate>
元素中声明 控件 BulletedList 。 虽然这是一个标准 ASP.NET 控件,但它在运行时将具有完整的 Web 部件功能,因为该WebPartManager控件会用 GenericWebPart 对象包装放置在 中的任何WebPartZone服务器控件,以便其他服务器控件可以参与 Web 部件应用程序。 此区域中也声明了名为 的TextDisplayWebPart
自定义WebPart控件。 请注意,此控件上声明了 属性 ExportMode="All"
。 这使你能够导出 。包含控件的属性值的 WebPart 说明文件,其他用户可以导入这些值,以便将预配置的控件添加到其他网页。
注意
若要使 Web 部件应用程序的用户能够导出控件的说明文件 WebPart ,还必须通过在元素 (中添加 enableExport="true"
属性 <webParts>
来启用 Web 应用程序中的导出功能,该元素是 Web.config 文件中元素) 的 <system.web>
子元素。 默认情况下,导出处于禁用状态,因此,如果尚未为应用程序启用导出,请编辑 Web.config 文件并立即执行此操作。
网页还声明自定义 CatalogZone 控件,并在其中 <zonetemplate>
声明包含 控件的 ImportCatalogPart 元素。 用户将在运行时使用此控件导入 。自定义 WebPart 控件的 WebPart 说明文件。
<%@ Page Language="C#" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenuCS"
Src="DisplayModeMenuCS.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.CS.Controls" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
ID="BulletedList1"
Runat="server"
DisplayMode="HyperLink"
Title="Favorite Links" >
<asp:ListItem Value="http://msdn.microsoft.com">
MSDN
</asp:ListItem>
<asp:ListItem Value="http://www.asp.net">
ASP.NET
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
</asp:BulletedList>
<aspsample:textdisplaywebpart id="wp1" runat="server"
Title="My Text Display WebPart" />
</ZoneTemplate>
</asp:WebPartZone>
<aspSample:MyCatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:ImportCatalogPart id="ImportCatalogPart1"
runat="server" />
</ZoneTemplate>
</aspSample:MyCatalogZone>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenuVB"
Src="DisplayModeMenuVB.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.VB.Controls" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuVB ID="DisplayModeMenu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:BulletedList
ID="BulletedList1"
Runat="server"
DisplayMode="HyperLink"
Title="Favorite Links" >
<asp:ListItem Value="http://msdn.microsoft.com">
MSDN
</asp:ListItem>
<asp:ListItem Value="http://www.asp.net">
ASP.NET
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
</asp:BulletedList>
<aspsample:textdisplaywebpart id="wp1" runat="server"
Title="My Text Display WebPart" />
</ZoneTemplate>
</asp:WebPartZone>
<aspSample:MyCatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:ImportCatalogPart id="ImportCatalogPart1"
runat="server" />
</ZoneTemplate>
</aspSample:MyCatalogZone>
</form>
</body>
</html>
现在运行代码示例。 在浏览器中加载网页。 第一步是导出 。控件的 TextDisplayWebPart
WebPart 说明文件。 单击) 标题栏中的向下箭头表示的自定义控件 (谓词菜单,然后单击“ 导出”。 按照说明保存控件的说明文件。 打开 。编辑器中的 WebPart 说明文件,并编辑 title 属性文本的值。
<property>
找到具有 属性 name="Title"
的元素,并编辑开始标记和结束<property>
标记之间包含的标题文本。 现在关闭网页,并在编辑器中编辑页面源。
<aspSample:TextDisplayWebPart>
删除控件声明元素,然后保存并关闭该文件。
在浏览器中再次加载网页。 控件 TextDisplayWebPart
不应显示,因为已将其删除。 使用 “显示模式 ”下拉列表控件并选择“ 目录 ”,将页面切换到目录模式。 请注意,自定义 CatalogZone 控件和 控件一 ImportCatalogPart 起显示。 单击“ 浏览 ”按钮找到 。为 TextDisplayWebPart
控件导出的 WebPart 说明文件。 可以单击“ 上传”,选中导入的控件旁边的复选框,然后单击“ 添加 ”将其添加到页面。 单击“ 关闭目录 ”将页面返回到正常浏览模式。 导入的控件现在应显示在页面中,显示在控件的标题栏中的标题应是添加到 的标题文本。WebPart 说明文件。
注解
在 Web 部件控件集中,区域是网页上包含 Web 部件控件的区域。 Web 部件区域由区域控件创建,该区域控件是一种旨在包含其他控件的 类型 CompositeControl 。 区域的主要功能是设置其包含的控件的布局,并为这些控件提供通用用户界面 (UI) 。 有关区域以及如何在 Web 部件应用程序中使用区域的常规信息,请参阅基 WebZone 类和 Web 部件控件集概述。
Web 部件控件的一个关键功能是,它们允许最终用户根据自己的首选项修改 (或个性化) 网页,并保存其个性化设置以供将来的浏览器会话使用。 修改 Web 部件页的一个方面包括向 Web 部件页添加 WebPart 控件或其他服务器控件的功能。 控件 CatalogZone 提供用户可添加到页面的控件列表或目录。
控件 CatalogZone 是 Web 部件控件集中的基本控件之一。 它派生自 CatalogZoneBase 类,其大部分行为继承自该类。 类 CatalogZone 实质上是向基类添加一个区域模板,它是 接口的 ITemplate 实现。 区域模板使开发人员能够以声明方式以页面持久性格式将控件添加到 CatalogPart 区域。
重要
区域 CatalogZone 只能 CatalogPart 包含控件,相反, CatalogPart 控件只能驻留在派生自 CatalogZoneBase 类的区域中,例如 CatalogZone。
CatalogZone仅当用户将网页切换到目录显示模式 (CatalogDisplayMode) 时,控件才可见。 目录可以包含多种类型的 CatalogPart 控件。 每个 CatalogPart 控件都是一种容器类型,其中包含用户可以添加到页面的服务器控件。 控件 CatalogPart 根据它们所包含的服务器控件的源位置而有所不同。 下表总结了 CatalogPart Web 部件控件集提供的控件,以及每个控件所包含的服务器控件类型。
控制 | 说明 |
---|---|
PageCatalogPart | 维护对已在页面上关闭的控件的引用。 可以重新打开这些控件, (用户) 重新添加到页面。 |
DeclarativeCatalogPart | 包含对网页标记中 Web 部件目录中声明的控件的引用。 用户可以将这些控件添加到网页。 |
ImportCatalogPart | 为用户提供 UI,以便将定义文件 (带有 的 XML 文件上传。WebPart 扩展和包含控件的状态信息) 到目录的指定格式,以便可以将控件添加到网页。 |
CatalogZone由于 类只向其基类的行为添加区域模板,因此其成员很少。 构造 CatalogZone 函数是无参数构造函数;使用它可以初始化 类的新实例 CatalogZone 。 属性 ZoneTemplate 获取或设置对 ITemplate 包含区域控件的 对象的引用。 方法 CreateCatalogParts 至关重要。 它重写基方法以创建区域模板中包含的所有 CatalogPart 控件的集合。
注意
UI 中的 CatalogZone 按钮需要客户端脚本才能正常工作。 如果在浏览器中禁用脚本,用户将无法通过 CatalogZone UI 执行操作。
可访问性
默认情况下为此控件呈现的标记可能不符合辅助功能标准,例如 Web 内容辅助功能指南 1.0 (WCAG) 优先级 1 准则。 有关此控件的辅助功能支持的详细信息,请参阅 ASP.NET 控件和辅助功能。
继承者说明
如果需要更好地控制目录 UI 的呈现和行为,可以创建自定义 CatalogZone 类。 如果不需要为控件的用户提供以声明方式添加 CatalogPart 控件的功能,则可以直接从 CatalogZoneBase 类继承。 如果确实想要启用以声明方式添加控件,则简单方法是从 CatalogZone 类继承,因为它提供基本的区域模板。
如果继承自 CatalogZone 类,则可以重写 CreateCatalogParts() 方法并使用 方法将自定义控件添加到 CatalogPartCollection,如果你希望对将自定义CatalogPart控件添加到区域具有更大的编程控制CatalogPart。
构造函数
CatalogZone() |
初始化 CatalogZone 类的新实例。 |
属性
AccessKey |
获取或设置使您得以快速导航到 Web 服务器控件的访问键。 (继承自 WebControl) |
Adapter |
获取控件的浏览器特定适配器。 (继承自 Control) |
AddVerb |
获取对 WebPartVerb 对象的引用,最终用户使用该对象可以将控件从目录添加到 Web 部件页。 (继承自 CatalogZoneBase) |
AppRelativeTemplateSourceDirectory |
获取或设置包含该控件的 Page 或 UserControl 对象的应用程序相对虚拟目录。 (继承自 Control) |
AssociatedDisplayModes |
获取与特定 WebPartDisplayMode 区域关联的 ToolZone 对象的集合。 (继承自 ToolZone) |
Attributes |
获取与控件的特性不对应的任意特性(只用于呈现)的集合。 (继承自 WebControl) |
BackColor |
获取或设置 Web 服务器控件的背景色。 (继承自 WebControl) |
BackImageUrl |
获取或设置指向区域的背景图像的 URL。 (继承自 WebZone) |
BindingContainer |
获取包含该控件的数据绑定的控件。 (继承自 Control) |
BorderColor |
获取或设置 Web 控件的边框颜色。 (继承自 WebControl) |
BorderStyle |
获取或设置 Web 服务器控件的边框样式。 (继承自 WebControl) |
BorderWidth |
获取或设置 Web 服务器控件的边框宽度。 (继承自 WebControl) |
CatalogPartChrome |
获取对 CatalogPartChrome 类的实例的引用,该类与 CatalogZoneBase 区域关联。 (继承自 CatalogZoneBase) |
CatalogParts |
获取 CatalogPart 区域中包含的所有 CatalogZoneBase 控件的集合。 (继承自 CatalogZoneBase) |
ChildControlsCreated |
获取一个值,该值指示是否已创建服务器控件的子控件。 (继承自 Control) |
ClientID |
获取由 ASP.NET 生成的 HTML 标记的控件 ID。 (继承自 Control) |
ClientIDMode |
获取或设置用于生成 ClientID 属性值的算法。 (继承自 Control) |
ClientIDSeparator |
获取一个字符值,该值表示 ClientID 属性中使用的分隔符字符。 (继承自 Control) |
CloseVerb |
获取对 WebPartVerb 对象的引用,最终用户可使用该对象关闭目录用户界面 (UI) 并将页返回到正常浏览模式。 (继承自 CatalogZoneBase) |
Context |
为当前 Web 请求获取与服务器控件关联的 HttpContext 对象。 (继承自 Control) |
Controls |
获取表示 ControlCollection 中的子控件的 CompositeControl 对象。 (继承自 CompositeControl) |
ControlStyle |
获取 Web 服务器控件的样式。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
ControlStyleCreated |
获取一个值,该值指示是否已为 Style 属性创建了 ControlStyle 对象。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
CssClass |
获取或设置由 Web 服务器控件在客户端呈现的级联样式表 (CSS) 类。 (继承自 WebControl) |
DataItemContainer |
如果命名容器实现 IDataItemContainer,则获取对命名容器的引用。 (继承自 Control) |
DataKeysContainer |
如果命名容器实现 IDataKeysControl,则获取对命名容器的引用。 (继承自 Control) |
DesignMode |
获取一个值,该值指示是否正在使用设计图面上的一个控件。 (继承自 Control) |
Display |
获取一个值,该值指示 ToolZone 控件当前是否正在显示。 (继承自 ToolZone) |
EditUIStyle |
获取 ToolZone 控件中包含的可编辑控件的样式特性。 (继承自 ToolZone) |
EmptyZoneText |
获取或设置当区域不包含任何控件时显示的消息。 (继承自 CatalogZoneBase) |
EmptyZoneTextStyle |
获取空区域中的占位符文本的样式特性。 (继承自 WebZone) |
Enabled |
获取或设置一个值,该值指示是否启用 Web 服务器控件。 (继承自 WebControl) |
EnableTheming |
获取或设置一个值,该值指示主题是否应用于该控件。 (继承自 WebControl) |
EnableViewState |
获取或设置一个值,该值指示服务器控件是否向发出请求的客户端保持自己的视图状态以及它所包含的任何子控件的视图状态。 (继承自 Control) |
ErrorStyle |
获取用于呈现在无法加载或创建 WebPart 控件时显示的错误消息的样式特性。 (继承自 WebZone) |
Events |
获取控件的事件处理程序委托列表。 此属性为只读。 (继承自 Control) |
Font |
获取与 Web 服务器控件关联的字体属性。 (继承自 WebControl) |
FooterStyle |
获取区域的页脚区域内容的样式特性。 (继承自 WebZone) |
ForeColor |
获取或设置 Web 服务器控件的前景色(通常是文本颜色)。 (继承自 WebControl) |
HasAttributes |
获取一个值,该值指示控件是否具有特性集。 (继承自 WebControl) |
HasChildViewState |
获取一个值,该值指示当前服务器控件的子控件是否具有任何已保存的视图状态设置。 (继承自 Control) |
HasFooter |
获取一个值,该值指示区域中是否具有页脚区域。 (继承自 WebZone) |
HasHeader |
获取一个值,该值指示区域是否具有页眉区域。 (继承自 WebZone) |
HeaderCloseVerb |
获取对位于 WebPartVerb 控件的页眉中,用于关闭该控件的 ToolZone 对象的引用。 (继承自 ToolZone) |
HeaderStyle |
获取区域的页眉区域内容的样式特性。 (继承自 WebZone) |
HeaderText |
获取或设置区域的页眉区的文本。 (继承自 CatalogZoneBase) |
HeaderVerbStyle |
获取在 ToolZone 控件中显示的所有页眉谓词的样式特性。 (继承自 ToolZone) |
Height |
获取或设置 Web 服务器控件的高度。 (继承自 WebControl) |
ID |
获取或设置分配给服务器控件的编程标识符。 (继承自 Control) |
IdSeparator |
获取用于分隔控件标识符的字符。 (继承自 Control) |
InstructionText |
获取或设置区域中为最终用户提供说明的文本。 (继承自 CatalogZoneBase) |
InstructionTextStyle |
获取在 ToolZone 控件的顶部显示的说明文本的样式特性。 (继承自 ToolZone) |
IsChildControlStateCleared |
获取一个值,该值指示该控件中包含的控件是否具有控件状态。 (继承自 Control) |
IsEnabled |
获取一个值,该值指示是否启用控件。 (继承自 WebControl) |
IsTrackingViewState |
获取一个值,用于指示服务器控件是否会将更改保存到其视图状态中。 (继承自 Control) |
IsViewStateEnabled |
获取一个值,该值指示是否为该控件启用了视图状态。 (继承自 Control) |
LabelStyle |
获取在 ToolZone 控件中的编辑控件旁显示的标签内容的样式特性。 派生的 ToolZone 控件(如 CatalogZone 和 EditorZone)将这些样式应用于标签。 (继承自 ToolZone) |
LoadViewStateByID |
获取一个值,该值指示控件是否通过 ID 而不是索引参与加载其视图状态。 (继承自 Control) |
NamingContainer |
获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同 ID 属性值的服务器控件。 (继承自 Control) |
Padding |
获取或设置区域中包含 WebPart 控件的表的单元格填充特性。 (继承自 WebZone) |
Page |
获取对包含服务器控件的 Page 实例的引用。 (继承自 Control) |
Parent |
获取对页 UI 层次结构中服务器控件的父控件的引用。 (继承自 Control) |
PartChromePadding |
获取或设置 WebPart 控件的内容和此控件的边框之间的距离。 (继承自 WebZone) |
PartChromeStyle |
获取适用于区域所包含的 Web 部件控件的边框的样式属性。 (继承自 WebZone) |
PartChromeType |
获取或设置构成区域所包含的 Web 部件控件的框架的边框类型。 (继承自 WebZone) |
PartLinkStyle |
获取一个对象,该对象包含区域中当前未选 CatalogPart 控件的样式特性。 (继承自 CatalogZoneBase) |
PartStyle |
获取适用于区域所包含的每个 Web 部件控件的边框和内容的样式属性。 (继承自 WebZone) |
PartTitleStyle |
获取区域所包含的每个 Web 部件控件的标题栏内容的样式特性。 (继承自 WebZone) |
RenderClientScript |
获取一个值,该值指示是否在 Web 部件页上呈现客户端脚本。 (继承自 WebZone) |
RenderingCompatibility |
获取一个值,该值指定呈现的 HTML 将与之兼容的 ASP.NET 版本。 (继承自 Control) |
SelectedCatalogPartID |
获取或设置一个字符串,该字符串用作区域中当前所选 CatalogPart 控件的标识符。 (继承自 CatalogZoneBase) |
SelectedPartLinkStyle |
获取一个对象,该对象包含区域中当前所选 CatalogPart 控件的样式特性。 (继承自 CatalogZoneBase) |
SelectTargetZoneText |
获取或设置目录用户界面 (UI) 中的控件旁边的文本,该控件允许用户选择将所选控件添加到哪个区域。 (继承自 CatalogZoneBase) |
ShowCatalogIcons |
获取或设置一个值,该值指示目录中的服务器控件是否在目录中显示其关联图标。 (继承自 CatalogZoneBase) |
Site |
获取容器信息,该容器在呈现于设计图面上时承载当前控件。 (继承自 Control) |
SkinID |
获取或设置要应用于控件的外观。 (继承自 WebControl) |
Style |
获取将在 Web 服务器控件的外部标记上呈现为样式特性的文本特性的集合。 (继承自 WebControl) |
SupportsDisabledAttribute |
获取一个值,该值指示在控件的 |
TabIndex |
获取或设置 Web 服务器控件的选项卡索引。 (继承自 WebControl) |
TagKey |
获取对应于此 Web 服务器控件的 HtmlTextWriterTag 值。 此属性主要由控件开发人员使用。 (继承自 WebZone) |
TagName |
获取控件标记的名称。 此属性主要由控件开发人员使用。 (继承自 WebControl) |
TemplateControl |
获取或设置对包含该控件的模板的引用。 (继承自 Control) |
TemplateSourceDirectory |
获取包含当前服务器控件的 Page 或 UserControl 的虚拟目录。 (继承自 Control) |
ToolTip |
获取或设置当鼠标指针悬停在 Web 服务器控件上时显示的文本。 (继承自 WebControl) |
UniqueID |
获取服务器控件的唯一的、以分层形式限定的标识符。 (继承自 Control) |
ValidateRequestMode |
获取或设置指示控件是否检查来自浏览器的客户端输入是否具有潜在危险值的值。 (继承自 Control) |
VerbButtonType |
获取或设置区域中用于表示谓词的按钮的种类。 (继承自 WebZone) |
VerbStyle |
获取与区域中的 Web 部件控件关联的用户界面 (UI) 谓词的样式特性。 (继承自 WebZone) |
ViewState |
获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。 (继承自 Control) |
ViewStateIgnoresCase |
获取一个值,该值指示 StateBag 对象是否不区分大小写。 (继承自 Control) |
ViewStateMode |
获取或设置此控件的视图状态模式。 (继承自 Control) |
Visible |
获取或设置一个值,该值指示服务器控件是否作为用户界面 (UI) 元素呈现在页上。 (继承自 ToolZone) |
WebPartManager |
获取对与 Web 部件页上的 WebPartManager 控件实例关联的 WebZone 控件的引用。 (继承自 WebZone) |
Width |
获取或设置 Web 服务器控件的宽度。 (继承自 WebControl) |
ZoneTemplate |
获取或设置一个模板,用于在 CatalogZone 控件中以页持久性格式包含子控件。 |
方法
事件
DataBinding |
当服务器控件绑定到数据源时发生。 (继承自 Control) |
Disposed |
当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。 (继承自 Control) |
Init |
当服务器控件初始化时发生;初始化是控件生存期的第一步。 (继承自 Control) |
Load |
当服务器控件加载到 Page 对象中时发生。 (继承自 Control) |
PreRender |
在加载 Control 对象之后、呈现之前发生。 (继承自 Control) |
Unload |
当服务器控件从内存中卸载时发生。 (继承自 Control) |
显式接口实现
扩展方法
FindDataSourceControl(Control) |
返回与指定控件的数据控件关联的数据源。 |
FindFieldTemplate(Control, String) |
返回指定控件的命名容器中指定列的字段模板。 |
FindMetaTable(Control) |
返回包含数据控件的元表对象。 |
GetDefaultValues(INamingContainer) |
为指定数据控件获取默认值的集合。 |
GetMetaTable(INamingContainer) |
为指定数据控件获取表元数据。 |
SetMetaTable(INamingContainer, MetaTable) |
为指定数据控件设置表元数据。 |
SetMetaTable(INamingContainer, MetaTable, IDictionary<String,Object>) |
为指定数据控件设置表元数据和默认值映射。 |
SetMetaTable(INamingContainer, MetaTable, Object) |
为指定数据控件设置表元数据和默认值映射。 |
TryGetMetaTable(INamingContainer, MetaTable) |
确定表元数据是否可用。 |
EnableDynamicData(INamingContainer, Type) |
为指定数据控件启用动态数据行为。 |
EnableDynamicData(INamingContainer, Type, IDictionary<String,Object>) |
为指定数据控件启用动态数据行为。 |
EnableDynamicData(INamingContainer, Type, Object) |
为指定数据控件启用动态数据行为。 |