Partager via


Syntaxe déclarative des contrôles serveur Web WebPartManager

Sert de classe centrale du jeu de contrôles WebPart, gérant tous les contrôles WebPart, les fonctionnalités et les événements qui se produisent sur une page 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>

Notes

Le contrôle WebPartManager agit en tant que pivot ou le centre de contrôle d'une application WebPart. Il ne doit y avoir qu'une seule et unique instance du contrôle WebPartManager sur chaque page qui utilise des contrôles WebPart et elle doit être placée avant que tous les contrôles de zone ne soient placés. Comme avec la plupart des aspects des applications WebPart, le contrôle WebPartManager est uniquement utilisé avec des utilisateurs authentifiés. En outre, ses fonctionnalités fonctionnent presque entièrement avec des contrôles serveur qui résident dans les zones WebPart qui héritent de la classe WebZone. Les serveurs contrôle qui résident sur une page en dehors de ces zones peut avoir des fonctionnalités WebPart très réduites ou une interaction avec le contrôle WebPartManager.

Pour plus d'informations sur les contrôles WebPartManager et WebPart, consultez Contrôles WebPart ASP.NET.

Exemple

L'exemple de code suivant montre comment utiliser de manière déclarative le contrôle WebPartManager dans un scénario WebParts utilisant le contrôle Calendar. La page Web permet à un utilisateur de passer en mode édition pour modifier certains aspects du contrôle Calendar. Le bouton Afficher/masquer la portée permet de faire basculer la page dans la portée de personnalisation utilisateur ou partagée. Les boutons Modifier et Mode de navigation font basculer la page dans le mode d'affichage approprié. Notez que dans la section de balise <script> du fichier, deux des méthodes qui gèrent les événements utilisent la propriété Personalization pour accéder aux membres utiles de l'objet sous-jacent. Spécifiquement, ces méthodes utilisent la méthode ToggleScope et la propriété Scope sur l'objet auquel on accède par le biais de la propriété Personalization.

Pour que l'exemple de code puisse s'exécuter, vous devez également autoriser un ou plusieurs utilisateurs à personnaliser des pages dans la portée partagée. Pour cela, ajoutez une entrée au fichier Web.config, dans webParts, élément (Schéma des paramètres ASP.NET).

<%@ 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>

Voir aussi

Référence

WebPartManager

Autres ressources

Contrôles WebPart ASP.NET