做為 Web 組件控制項集合的中央類別,管理所有 Web 組件控制項、功能和發生在 Web 網頁上的事件。
<asp:WebPartManager
CloseProviderWarning="string"
DeleteWarning="string"
EnableClientScript="True|False"
EnableTheming="True|False"
EnableViewState="True|False"
ExportSensitiveDataWarning="string"
ID="string"
OnAuthorizeWebPart="AuthorizeWebPart event handler"
OnConnectionsActivated="ConnectionsActivated event handler"
OnConnectionsActivating="ConnectionsActivating event handler"
OnDataBinding="DataBinding event handler"
OnDisplayModeChanged="DisplayModeChanged event handler"
OnDisplayModeChanging="DisplayModeChanging event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnSelectedWebPartChanged="SelectedWebPartChanged event handler"
OnSelectedWebPartChanging="SelectedWebPartChanging event handler"
OnUnload="Unload event handler"
OnWebPartAdded="WebPartAdded event handler"
OnWebPartAdding="WebPartAdding event handler"
OnWebPartClosed="WebPartClosed event handler"
OnWebPartClosing="WebPartClosing event handler"
OnWebPartDeleted="WebPartDeleted event handler"
OnWebPartDeleting="WebPartDeleting event handler"
OnWebPartMoved="WebPartMoved event handler"
OnWebPartMoving="WebPartMoving event handler"
OnWebPartsConnected="WebPartsConnected event handler"
OnWebPartsConnecting="WebPartsConnecting event handler"
OnWebPartsDisconnected="WebPartsDisconnected event handler"
OnWebPartsDisconnecting="WebPartsDisconnecting event handler"
Personalization-Enabled="True|False"
Personalization-InitialScope="User|Shared"
Personalization-ProviderName="string"
runat="server"
SkinID="string"
>
<Personalization
Enabled="True|False"
InitialScope="User|Shared"
ProviderName="string" />
<StaticConnections>
<asp:WebPartConnection
ConsumerConnectionPointID="string"
ConsumerID="string"
ID="string"
ProviderConnectionPointID="string"
ProviderID="string" >
<asp:RowToFieldTransformer
FieldName="string" />
<asp:RowToParametersTransformer
ConsumerFieldNames="string"
ProviderFieldNames="string"/>
</asp:WebPartConnection>
</StaticConnections>
</asp:WebPartManager>
備註
WebPartManager 控制項是做為 Web 組件應用程式的中樞或控制中心。 每個使用 Web 組件控制項的頁面都必須具有一個 (且只能有一個) WebPartManager 控制項的執行個體,而且必須放置在任何區域控制項之前。 如同大部分 Web 組件應用程式的狀況下,只有已驗證使用者時,WebPartManager 控制項才會運作。 此外,它的功能幾乎只搭配位於繼承自 WebZone 類別之 Web 組件區域中的伺服器控制項才會有作用。 位於頁面上這些區域之外的伺服器控制項只有極少 Web 組件功能,與 WebPartManager 控制項也少有互動。
如需 WebPartManager 和 Web 組件控制項的詳細資訊,請參閱 ASP.NET Web 組件控制項。
範例
下列程式碼範例將示範如何在 Web 組件案例中,利用 Calendar 控制項以宣告方式使用 WebPartManager 控制項。 此 Web 網頁允許使用者進入編輯模式,以編輯 Calendar 控制項的某些外觀。 [切換範圍] 按鈕會將頁面切換至使用者或共用個人化範圍。 [編輯模式] 和 [瀏覽模式] 按鈕會分別將頁面切換為適當的顯示模式。 請注意,在檔案的 <script> 標記區段中,兩個處理事件的方法會使用 Personalization 屬性來存取基礎物件的有用成員。 具體而言,這些方法會使用 ToggleScope 方法及物件上的 Scope 屬性 (透過 Personalization 屬性存取)。
為了要讓此程式碼範例能夠執行,您也必須啟用一或多位使用者,在共用的範圍中將頁面個人化。 若要進行這項操作,請在 webParts 項目 (ASP.NET 設定結構描述) 中,對 Web.config 檔案加入一個項目。
<%@ 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)
If ((mgr1.Personalization.Scope = PersonalizationScope.User) _
And (mgr1.Personalization.CanEnterSharedScope)) Then
mgr1.Personalization.ToggleScope()
ElseIf (mgr1.Personalization.Scope = PersonalizationScope.Shared) Then
mgr1.Personalization.ToggleScope()
Else
'If the user cannot enter shared scope you may want
' to notify them on the page.
End If
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
mgr1.DisplayMode = WebPartManager.EditDisplayMode
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
mgr1.DisplayMode = WebPartManager.BrowseDisplayMode
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As CommandEventArgs)
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:LoginName id="LoginName1" runat="server" />
<asp:WebPartManager id="mgr1" runat="server">
<Personalization InitialScope="Shared" Enabled="True" />
</asp:WebPartManager>
<asp:WebPartZone id="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Calendar id="Calendar1" runat="server" />
</ZoneTemplate>
<CloseVerb Text="Close This Part" />
<MinimizeVerb Text="Minimize This Part" />
<EditVerb Text="Edit This Part" />
</asp:WebPartZone>
<asp:EditorZone id="EditorZone1" runat="server">
<ZoneTemplate>
<asp:LayoutEditorPart HorizontalAlign="Center" id="Layout1" runat="server" Title="My Custom Layout" />
<asp:AppearanceEditorPart id="AppearanceEditorPart1"
runat="server" BackColor="LightGray" />
<asp:BehaviorEditorPart id="BehaviorEditorPart1"
runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<hr />
<asp:Button id="Button1" runat="server" Text="Toggle Scope" OnClick="Button1_Click" />
<asp:Button id="Button2" runat="server" Text="Edit Mode" OnClick="Button2_Click" />
<asp:Button id="Button3" runat="server" Text="Browse Mode" OnClick="Button3_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)
{
if ((mgr1.Personalization.Scope == PersonalizationScope.User)
&& (mgr1.Personalization.CanEnterSharedScope))
{
mgr1.Personalization.ToggleScope();
}
else if (mgr1.Personalization.Scope ==
PersonalizationScope.Shared)
{
mgr1.Personalization.ToggleScope();
}
else
{
// If the user cannot enter shared scope you may want
// to notify them on the page.
}
}
protected void Button2_Click(object sender, EventArgs e)
{
mgr1.DisplayMode = WebPartManager.EditDisplayMode;
}
protected void Button3_Click(object sender, EventArgs e)
{
mgr1.DisplayMode = WebPartManager.BrowseDisplayMode;
}
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:LoginName id="LoginName1" runat="server" />
<asp:WebPartManager id="mgr1" runat="server">
<Personalization InitialScope="Shared" Enabled="True" />
</asp:WebPartManager>
<asp:WebPartZone id="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Calendar id="Calendar1" runat="server" />
</ZoneTemplate>
<CloseVerb Text="Close This Part" />
<MinimizeVerb Text="Minimize This Part" />
<EditVerb Text="Edit This Part" />
</asp:WebPartZone>
<asp:EditorZone id="EditorZone1" runat="server">
<ZoneTemplate>
<asp:LayoutEditorPart HorizontalAlign="Center" id="Layout1" runat="server" Title="My Custom Layout" />
<asp:AppearanceEditorPart id="AppearanceEditorPart1"
runat="server" BackColor="LightGray" />
<asp:BehaviorEditorPart id="BehaviorEditorPart1"
runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<hr />
<asp:Button id="Button1" runat="server" Text="Toggle Scope" OnClick="Button1_Click" />
<asp:Button id="Button2" runat="server" Text="Edit Mode" OnClick="Button2_Click" />
<asp:Button id="Button3" runat="server" Text="Browse Mode" OnClick="Button3_Click" />
<br />
<asp:Label id="Label1" runat="server" Text="" />
</div>
</form>
</body>
</html>