WebPartManager.Personalization Propiedad

Definición

Obtiene una referencia a un objeto que contiene los datos de personalización para una página 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

Valor de propiedad

Objeto WebPartPersonalization que contiene datos de personalización.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la Personalization propiedad mediante programación.

La página web siguiente permite al usuario entrar en el modo de edición para editar determinados aspectos del Calendar control. El botón Alternar ámbito cambia la página al ámbito de personalización compartida o de usuario. Cada uno de los botones Modo de edición y Modo de exploración cambia la página al modo de visualización adecuado. Observe que en la <script> sección de etiquetas del archivo, dos de los métodos que controlan los eventos usan la Personalization propiedad para tener acceso a miembros útiles del objeto subyacente. En concreto, estos métodos usan el ToggleScope método y la Scope propiedad del objeto al que se accede a través de la Personalization propiedad .

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

Para que se ejecute el ejemplo de código, también debe permitir que un usuario o usuarios personalicen páginas en el ámbito compartido. Agregue una entrada al archivo Web.config, dentro de la <system.web> sección , similar al marcado siguiente.

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

Después de cargar la página en un explorador, haga clic en el botón Alternar ámbito y observe que la página ahora dice que el ámbito se comparte. Haga clic en Modo de edición para cambiar el modo de presentación, haga clic en el menú verbos del control visible y seleccione Editar en el menú. Observe que aparece la interfaz de usuario (UI) para ambos controles de edición. Ahora haga clic en Modo de exploración para volver a la exploración normal. Si la página dice que está en el ámbito compartido, vuelva a hacer clic en Alternar ámbito para asegurarse de que la página está en el ámbito de usuario. A continuación, siga los mismos pasos para volver a editar el control, pero observe que ahora en la interfaz de usuario de edición, el BehaviorEditorPart control no aparece. Esto se debe a que este control solo funciona cuando la página está en el ámbito de personalización compartida.

Comentarios

La Personalization propiedad proporciona una manera de tener acceso al WebPartPersonalization objeto asociado a una página a través del WebPartManager control . Con esta propiedad, puede acceder a los distintos miembros del objeto de personalización. Por ejemplo, puede usar el método para cambiar el ToggleScope ámbito de personalización de la página de un ámbito compartido a otro, o viceversa. También puede averiguar el ámbito de personalización actual de la página, si la personalización está habilitada incluso en la página, qué proveedor se usa para los datos de personalización, etc.

Tenga en cuenta que los datos a los que hace referencia la Personalization propiedad son solo los datos de personalización de nivel de página a los que realiza el seguimiento el WebPartManager control. Los datos de personalización específicos del control, como los valores de propiedades personalizables en WebPart los controles, no forman parte de la Personalization propiedad .

Nota

Para obtener más información sobre la personalización de elementos web, vea Información general sobre la personalización de elementos web.

Se aplica a

Consulte también