共用方式為


WebPartManager Web 伺服器控制項宣告式語法

更新:2007 年 11 月

做為 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>

請參閱

參考

WebPartManager

其他資源

ASP.NET Web 組件控制項