Condividi tramite


WebPartManager.Personalization Proprietà

Definizione

Ottiene un riferimento a un oggetto che contiene dati di personalizzazione per una pagina 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

Valore della proprietà

Valore WebPartPersonalization che contiene i dati di personalizzazione.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare la Personalization proprietà a livello di codice.

La pagina Web seguente consente a un utente di immettere la modalità di modifica per modificare determinati aspetti del Calendar controllo. Il pulsante Toggle Scope passa la pagina all'ambito di personalizzazione utente o condiviso. I pulsanti Modalità di modifica e modalità sfoglia passano la pagina alla modalità di visualizzazione appropriata. Si noti che nella <script> sezione tag del file, due dei metodi che gestiscono gli eventi usano la Personalization proprietà per accedere ai membri utili dell'oggetto sottostante. In particolare, questi metodi usano il ToggleScope metodo e la Scope proprietà sull'oggetto a cui si accede tramite la Personalization proprietà .

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

Per l'esecuzione dell'esempio di codice, è anche necessario abilitare un utente o un utente per personalizzare le pagine nell'ambito condiviso. Aggiungere una voce al file Web.config, all'interno della <system.web> sezione, simile al markup seguente.

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

Dopo aver caricato la pagina in un browser, fare clic sul pulsante Disattiva ambito e notare che la pagina indica ora che l'ambito è condiviso. Fare clic su Modifica modalità per modificare la modalità di visualizzazione, fare clic sul menu verbi nel controllo visibile e selezionare Modifica dal menu. Si noti che viene visualizzata l'interfaccia utente per entrambi i controlli di modifica. Fare ora clic su Sfoglia modalità per tornare alla normale navigazione. Se la pagina indica che è nell'ambito condiviso, fare di nuovo clic su Disattiva ambito per assicurarsi che la pagina sia nell'ambito utente. Seguire quindi gli stessi passaggi per modificare di nuovo il controllo, ma si noti che ora nell'interfaccia utente di modifica, il BehaviorEditorPart controllo non viene visualizzato. Questo perché questo controllo funziona solo quando la pagina è nell'ambito di personalizzazione condivisa.

Commenti

La Personalization proprietà consente di accedere all'oggetto WebPartPersonalization associato a una pagina tramite il WebPartManager controllo . Usando questa proprietà, è possibile accedere ai vari membri dell'oggetto personalizzazione. Ad esempio, è possibile usare il metodo per cambiare l'ambito ToggleScope di personalizzazione della pagina dall'ambito condiviso all'ambito utente o viceversa. È anche possibile scoprire l'ambito di personalizzazione corrente della pagina, se la personalizzazione è abilitata anche nella pagina, quale provider viene usato per i dati di personalizzazione e altro ancora.

Si noti che i dati a cui fa riferimento la Personalization proprietà sono solo i dati di personalizzazione a livello di pagina rilevati dal WebPartManager controllo. I dati di personalizzazione specifici del controllo, ad esempio i valori delle proprietà personalizzabili nei WebPart controlli, non fanno parte della Personalization proprietà.

Si applica a

Vedi anche