更新:2007 年 11 月
可讓開發人員以宣告式、頁面保存格式將 WebPart 或其他伺服器控制項的目錄加入至 Web 網頁。
<asp:DeclarativeCatalogPart 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" WebPartsListUserControlPath="uri" Width="size" Wrap="True|False" > <WebPartsTemplate> <!-- child controls --> </WebPartsTemplate> </asp:DeclarativeCatalogPart>
備註
DeclarativeCatalogPart 控制項為開發人員提供了以宣告方式將一組伺服器控制項加入至 Web 網頁上之目錄的方法。Web 組件控制項集合中的目錄,是頁面處於目錄顯示模式時可以看見之 WebPart 或其他伺服器控制項的清單。使用者可以從清單中選取控制項,並將它們加入至 Web 網頁,這樣可以有效地為使用者提供變更頁面上控制項集合與功能的能力。
如需 DeclarativeCatalogPart 和 Web 組件控制項的詳細資訊,請參閱 ASP.NET Web 組件控制項。
範例
下列程式碼範例示範 DeclarativeCatalogPart 控制項的使用。此 Web 網頁允許使用者對 Web 組件區域加入 Calendar 或 CreateUserWizard 控制項。
<%@ 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>