Udostępnij za pośrednictwem


WebPartManager.Personalization Właściwość

Definicja

Pobiera odwołanie do obiektu zawierającego dane personalizacji dla strony sieci 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

Wartość właściwości

Element WebPartPersonalization zawierający dane personalizacji.

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak programowo używać Personalization właściwości.

Poniższa strona sieci Web umożliwia użytkownikowi wprowadzanie trybu edycji w celu edytowania niektórych aspektów kontrolki Calendar . Przycisk Przełącz zakres powoduje przełączenie strony do zakresu użytkownika lub udostępnionej personalizacji. Przyciski Tryb edycji i Tryb przeglądania przełączają stronę do odpowiedniego trybu wyświetlania. Zwróć uwagę, że w <script> sekcji tagu pliku dwie metody obsługujące zdarzenia używają Personalization właściwości , aby uzyskać dostęp do przydatnych elementów członkowskich obiektu bazowego. W szczególności metody te używają ToggleScope metody i Scope właściwości obiektu dostępnego Personalization za pośrednictwem właściwości .

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

Aby można było uruchomić przykładowy kod, należy również włączyć użytkownika lub użytkowników w celu spersonalizowania stron w zakresie udostępnionym. Dodaj wpis do pliku Web.config w <system.web> sekcji, który wygląda podobnie do poniższego znacznika.

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

Po załadowaniu strony w przeglądarce kliknij przycisk Przełącz zakres i zwróć uwagę, że strona ma teraz informację o udostępnieniu zakresu. Kliknij pozycję Tryb edycji , aby zmienić tryb wyświetlania, kliknij menu czasowników w widocznej kontrolce, a następnie wybierz pozycję Edytuj z menu. Zwróć uwagę, że zostanie wyświetlony interfejs użytkownika dla obu kontrolek edycji. Teraz kliknij pozycję Tryb przeglądania , aby powrócić do normalnego przeglądania. Jeśli na stronie znajduje się ona w zakresie udostępnionym, ponownie kliknij przycisk Przełącz zakres, aby upewnić się, że strona znajduje się w zakresie użytkownika. Następnie wykonaj te same kroki, aby ponownie edytować kontrolkę, ale zwróć uwagę, że teraz w interfejsie użytkownika edycji kontrolka nie jest wyświetlana BehaviorEditorPart . Dzieje się tak, ponieważ ta kontrolka działa tylko wtedy, gdy strona znajduje się w zakresie personalizacji udostępnionej.

Uwagi

Właściwość Personalization zapewnia dostęp do obiektu skojarzonego WebPartPersonalization ze stroną za pośrednictwem kontrolki WebPartManager . Za pomocą tej właściwości można uzyskać dostęp do różnych elementów członkowskich obiektu personalizacji. Można na przykład użyć ToggleScope metody , aby przełączyć zakres personalizacji strony z udostępnionego na zakres użytkownika lub na odwrót. Możesz również sprawdzić bieżący zakres personalizacji strony, czy personalizacja jest nawet włączona na stronie, który dostawca jest używany do danych personalizacji i nie tylko.

Należy pamiętać, że dane, Personalization do których odwołuje się właściwość, to tylko dane personalizacji na poziomie strony, które są śledzone przez kontrolkę WebPartManager . Dane personalizacji specyficzne dla kontrolek, takie jak wartości właściwości do personalizacji w WebPart kontrolkach, nie są częścią Personalization właściwości.

Uwaga

Aby uzyskać więcej informacji na temat personalizacji składników Web Part, zobacz Omówienie personalizacji składników Web Part.

Dotyczy

Zobacz też