PageCatalogPart Web Server Control Declarative Syntax
Provides a catalog that keeps references to all WebPart controls (and other server controls that are contained in WebPartZoneBase zones) that a user has closed on a single Web Parts page, which enables the user to add the closed controls back to the page.
<asp:PageCatalogPart
AccessKey="string"
BackColor="color name|#dddddd"
BackImageUrl="uri"
BorderColor="color name|#dddddd"
BorderStyle="NotSet|None|Dotted|Dashed|Solid|Double|Groove|Ridge|
Inset|Outset"
BorderWidth="size"
ChromeState="Normal|Minimized"
ChromeType="Default|TitleAndBorder|None|TitleOnly|BorderOnly"
CssClass="string"
DefaultButton="string"
Description="string"
Direction="NotSet|LeftToRight|RightToLeft"
Enabled="True|False"
EnableTheming="True|False"
EnableViewState="True|False"
Font-Bold="True|False"
Font-Italic="True|False"
Font-Names="string"
Font-Overline="True|False"
Font-Size="string|Smaller|Larger|XX-Small|X-Small|Small|Medium|
Large|X-Large|XX-Large"
Font-Strikeout="True|False"
Font-Underline="True|False"
ForeColor="color name|#dddddd"
GroupingText="string"
Height="size"
HorizontalAlign="NotSet|Left|Center|Right|Justify"
ID="string"
OnDataBinding="DataBinding event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnUnload="Unload event handler"
runat="server"
ScrollBars="None|Horizontal|Vertical|Both|Auto"
SkinID="string"
Style="string"
TabIndex="integer"
Title="string"
ToolTip="string"
Visible="True|False"
Width="size"
Wrap="True|False"
/>
Remarks
The PageCatalogPart class serves one very specific purpose on a Web Parts page: it acts as a page catalog to maintain any controls that were previously added to the page that a user has closed, so that the user can add them back to the page. This control is visible only when a Web page is in catalog display mode, a special view that enables users to add and remove controls on the page. To provide users with the flexibility of closing and reopening controls on your page, add a PageCatalogPart control to the page. If your page does not allow users to close controls, there is no need to add a PageCatalogPart control to the page.
For more information on the PageCatalogPart and other Web Parts controls, see ASP.NET Web Parts Pages.
Example
The following code example demonstrates how to use the PageCatalogPart control. The Web page allows a user to add a Calendar or CreateUserWizard control to a Web Parts zone.
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
mgr1.DisplayMode = WebPartManager.BrowseDisplayMode
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
mgr1.DisplayMode = WebPartManager.CatalogDisplayMode
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Label1.Text = "Scope is: " _
+ mgr1.Personalization.Scope.ToString()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Web Parts Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr1" runat="server">
<Personalization InitialScope="Shared" Enabled="True" />
</asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server"
EmptyZoneText="No parts to show.">
<ZoneTemplate>
</ZoneTemplate>
<CloseVerb Text="Close This Part" />
<MinimizeVerb Text="Minimize This Part" />
<EditVerb Text="Edit This Part" />
</asp:WebPartZone>
<asp:CatalogZone ID="CatalogZone1" runat="server" >
<ZoneTemplate>
<asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
<asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1"
runat="server">
<WebPartsTemplate>
<asp:Calendar id="Calendar1" runat="server" />
<asp:CreateUserWizard ID="CreateUserWizard1"
runat="server" />
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
<asp:ImportCatalogPart ID="ImportCatalogPart1" runat="server"/>
</ZoneTemplate>
</asp:CatalogZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="Browse Mode" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Catalog Mode" OnClick="Button2_Click" /><br />
<asp:Label ID="Label1" runat="server" Text="" />
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
mgr1.DisplayMode = WebPartManager.BrowseDisplayMode;
}
protected void Button2_Click(object sender, EventArgs e)
{
mgr1.DisplayMode = WebPartManager.CatalogDisplayMode;
}
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Scope is: "
+ mgr1.Personalization.Scope.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Web Parts Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr1" runat="server">
<Personalization InitialScope="Shared" Enabled="True" />
</asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server"
EmptyZoneText="No parts to show.">
<ZoneTemplate>
</ZoneTemplate>
<CloseVerb Text="Close This Part" />
<MinimizeVerb Text="Minimize This Part" />
<EditVerb Text="Edit This Part" />
</asp:WebPartZone>
<asp:CatalogZone ID="CatalogZone1" runat="server" >
<ZoneTemplate>
<asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
<asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1"
runat="server">
<WebPartsTemplate>
<asp:Calendar id="Calendar1" runat="server" />
<asp:CreateUserWizard ID="CreateUserWizard1"
runat="server" />
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
<asp:ImportCatalogPart ID="ImportCatalogPart1" runat="server"/>
</ZoneTemplate>
</asp:CatalogZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="Browse Mode" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server"
Text="Catalog Mode" OnClick="Button2_Click" /><br />
<asp:Label ID="Label1" runat="server" Text="" />
</div>
</form>
</body>
</html>