Partager via


WebPartManager.Personalization Propriété

Définition

Obtient une référence à un objet qui contient des données de personnalisation pour une page Web.

public:
 property System::Web::UI::WebControls::WebParts::WebPartPersonalization ^ Personalization { System::Web::UI::WebControls::WebParts::WebPartPersonalization ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.WebParts.WebPartPersonalization Personalization { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.Personalization : System.Web.UI.WebControls.WebParts.WebPartPersonalization
Public ReadOnly Property Personalization As WebPartPersonalization

Valeur de propriété

WebPartPersonalization qui contient des données de personnalisation.

Attributs

Exemples

L’exemple de code suivant montre comment utiliser la Personalization propriété par programmation.

La page Web suivante permet à un utilisateur d’entrer en mode d’édition pour modifier certains aspects du Calendar contrôle. Le bouton Basculer l’étendue bascule la page vers l’étendue de personnalisation utilisateur ou partagée. Les boutons Mode d’édition et Mode De navigation basculent chacun la page dans le mode d’affichage approprié. Notez que dans la <script> section balise du fichier, deux des méthodes qui gèrent les événements utilisent la Personalization propriété pour accéder aux membres utiles de l’objet sous-jacent. Plus précisément, ces méthodes utilisent la ToggleScope méthode et la Scope propriété sur l’objet accessible via la Personalization propriété .

<%@ 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>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:Calendar ID="Calendar1" runat="server" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:AppearanceEditorPart ID="AppearanceEditorPart1" 
            runat="server"  />
          <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="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 _
      AndAlso 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 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>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:Calendar ID="Calendar1" runat="server" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:EditorZone ID="EditorZone1" runat="server">
        <ZoneTemplate>
          <asp:AppearanceEditorPart ID="AppearanceEditorPart1" 
            runat="server"  />
          <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>

Pour que l’exemple de code s’exécute, vous devez également autoriser un ou plusieurs utilisateurs à personnaliser les pages dans l’étendue partagée. Ajoutez une entrée au fichier Web.config, dans la <system.web> section, qui ressemble au balisage suivant.

<webParts>  
  <personalization>  
    <authorization>  
      <allow  
        users="[Replace the text and brackets with a user name or   
           group.]"  
        roles="admin"   
        verbs="enterSharedScope"  />  
    </authorization>  
  </personalization>  
</webParts>   

Après avoir chargé la page dans un navigateur, cliquez sur le bouton Désactiver l’étendue et notez que la page indique maintenant que l’étendue est partagée. Cliquez sur Modifier le mode pour modifier le mode d’affichage, cliquez sur le menu verbes du contrôle visible, puis sélectionnez Modifier dans le menu. Notez que l’interface utilisateur pour les deux contrôles de modification s’affiche. Cliquez maintenant sur Mode de navigation pour revenir à une navigation normale. Si la page indique qu’elle est dans l’étendue partagée, cliquez à nouveau sur Activer l’étendue pour vérifier que la page est dans l’étendue utilisateur. Ensuite, suivez les mêmes étapes pour modifier à nouveau le contrôle, mais notez que maintenant dans l’interface utilisateur de modification, le BehaviorEditorPart contrôle n’apparaît pas. En effet, ce contrôle fonctionne uniquement lorsque la page est dans l’étendue de personnalisation partagée.

Remarques

La Personalization propriété permet d’accéder à l’objet WebPartPersonalization associé à une page via le WebPartManager contrôle . À l’aide de cette propriété, vous pouvez accéder aux différents membres de l’objet de personnalisation. Par exemple, vous pouvez utiliser la ToggleScope méthode pour faire passer l’étendue de personnalisation de la page de l’étendue partagée à l’étendue utilisateur, ou inversement. Vous pouvez également découvrir l’étendue de personnalisation actuelle de la page, si la personnalisation est même activée sur la page, quel fournisseur est utilisé pour les données de personnalisation, etc.

Notez que les données référencées par la Personalization propriété sont uniquement les données de personnalisation au niveau de la page suivies par le WebPartManager contrôle. Les données de personnalisation spécifiques aux contrôles, telles que les valeurs des propriétés personnalisables sur WebPart les contrôles, ne font pas partie de la Personalization propriété.

Notes

Pour plus d’informations sur la personnalisation des composants WebPart, consultez Vue d’ensemble de la personnalisation des composants WebPart.

S’applique à

Voir aussi