WebPart.AllowClose Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob ein Endbenutzer ein WebPart-Steuerelement auf einer Webseite schließen kann, oder legt diesen Wert fest.

public:
 virtual property bool AllowClose { bool get(); void set(bool value); };
[System.Web.UI.Themeable(false)]
[System.Web.UI.WebControls.WebParts.Personalizable(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)]
public virtual bool AllowClose { get; set; }
[<System.Web.UI.Themeable(false)>]
[<System.Web.UI.WebControls.WebParts.Personalizable(System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared)>]
member this.AllowClose : bool with get, set
Public Overridable Property AllowClose As Boolean

Eigenschaftswert

Boolean

true, wenn Steuerelemente auf einer Webseite geschlossen werden können, andernfalls false. Der Standardwert ist true.

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die Standardeinstellung der AllowClose Eigenschaft für ein benutzerdefiniertes WebPart Steuerelement ändern, sodass sie nicht geschlossen werden kann.

Der erste Teil dieses Beispiels enthält den Code für ein benutzerdefiniertes WebPart Steuerelement namens TextDisplayWebPart. Beachten Sie, dass in dem Konstruktor des benutzerdefinierten Steuerelements die TextDisplayWebPart.AllowClose Eigenschaft festgelegt falseist, auf die die Wirkung besteht, dass Benutzer das Steuerelement auf einer Webseite schließen. Dies bedeutet, dass das Schließen-Verb im Menü "Verben" des Steuerelements für Benutzer deaktiviert wird. Zum Ausführen des Codebeispiels müssen Sie diesen Quellcode kompilieren. Sie können es explizit kompilieren und die resultierende Assembly in den Bin-Ordner Ihrer Website oder den globalen Assemblycache einfügen. Alternativ können Sie den Quellcode in den App_Code Ordner Ihrer Website einfügen, wo sie zur Laufzeit dynamisch kompiliert wird. In diesem Codebeispiel wird davon ausgegangen, dass Sie den Quellcode in eine Assembly kompilieren, sie in einem Bin-Unterordner Ihrer Webanwendung platzieren und auf die Assembly mit einer Register Richtlinie auf Ihrer Webseite verweisen. Eine exemplarische Vorgehensweise, die beide Methoden der Kompilierung veranschaulicht, finden Sie unter Exemplarische Vorgehensweise: Entwickeln und Verwenden eines benutzerdefinierten Webserversteuerelements.

using System;
using System.Security.Permissions;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand, 
    Level=AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
    Level=AspNetHostingPermissionLevel.Minimal)]
  public class TextDisplayWebPart : WebPart
  {
    private String _contentText = null;
    TextBox input;
    Label DisplayContent;

    public TextDisplayWebPart()
    {
      this.AllowClose = false;
    }

    [Personalizable(), WebBrowsable]
    public String ContentText
    {
      get { return _contentText; }
      set { _contentText = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      DisplayContent.BackColor = 
        System.Drawing.Color.LightBlue;
      DisplayContent.Text = this.ContentText;
      this.Controls.Add(DisplayContent);
      input = new TextBox();
      this.Controls.Add(input);
      Button update = new Button();
      update.Text = "Set Label Content";
      update.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(update);
      ChildControlsCreated = true;
    }

    private void submit_Click(object sender, EventArgs e)
    {
      // Update the label string.
      if (!string.IsNullOrEmpty(input.Text))
      {
        _contentText = input.Text + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }
  }
}
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

<AspNetHostingPermission(SecurityAction.Demand, _
  Level := AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
  Level := AspNetHostingPermissionLevel.Minimal)> _
Public Class TextDisplayWebPart
    Inherits WebPart
    Private _contentText As String = Nothing
    Private input As TextBox
    Private DisplayContent As Label
    
    
    Public Sub New() 
      Me.AllowClose = False
    End Sub
    
    <Personalizable(), WebBrowsable()>  _
    Public Property ContentText() As String 
        Get
            Return _contentText
        End Get
        Set
            _contentText = value
        End Set
    End Property
     
    Protected Overrides Sub CreateChildControls() 
        Controls.Clear()
        DisplayContent = New Label()
        DisplayContent.Text = Me.ContentText
        DisplayContent.BackColor = _
          System.Drawing.Color.LightBlue
        Me.Controls.Add(DisplayContent)
        input = New TextBox()
        Me.Controls.Add(input)
        Dim update As New Button()
        update.Text = "Set Label Content"
        AddHandler update.Click, AddressOf Me.submit_Click
        Me.Controls.Add(update)
        ChildControlsCreated = True
    
    End Sub
    
    
    Private Sub submit_Click(ByVal sender As Object, _
                             ByVal e As EventArgs) 
        ' Update the label string.
        If input.Text <> String.Empty Then
            _contentText = input.Text & "<br />"
            input.Text = String.Empty
            DisplayContent.Text = Me.ContentText
        End If
    
    End Sub
    
End Class

End Namespace

Im zweiten Teil des Beispiels wird gezeigt, wie auf das TextDisplayWebPart Steuerelement auf eine ASP.NET-Webseite verwiesen wird. Beachten Sie, dass im <aspSample:TextDisplayWebPart> Element, das auf das Steuerelement verweist, auch den Wert der Eigenschaft ändern können, die vom Konstruktor des Steuerelements festgelegt wurde. Um das Steuerelement zu schließen, fügen Sie einfach dem Element im deklarativen Markup ein AllowClose="true" Attribut hinzu.

<%@ page language="C#" %>
<%@ register tagprefix="aspSample" 
             Namespace="Samples.AspNet.CS.Controls" 
             Assembly="TextDisplayWebPartCS"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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">
    <asp:webpartmanager id="WebPartManager1" runat="server" />
    <asp:webpartzone
      id="WebPartZone1"
      runat="server"
      title="Zone 1"
      PartChromeType="TitleAndBorder">
        <parttitlestyle font-bold="true" ForeColor="#3300cc" />
        <partstyle
          borderwidth="1px"   
          borderstyle="Solid"  
          bordercolor="#81AAF2" />
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="textwebpart" 
            title = "Text Content WebPart" />
        </zonetemplate>
    </asp:webpartzone>
  </form>
</body>
</html>
<%@ page language="VB" %>
<%@ register tagprefix="aspSample" 
             Namespace="Samples.AspNet.VB.Controls" 
             Assembly="TextDisplayWebPartVB"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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">
    <asp:webpartmanager id="WebPartManager1" runat="server" />
    <asp:webpartzone
      id="WebPartZone1"
      runat="server"
      title="Zone 1"
      PartChromeType="TitleAndBorder">
        <parttitlestyle font-bold="true" ForeColor="#3300cc" />
        <partstyle
          borderwidth="1px"   
          borderstyle="Solid"  
          bordercolor="#81AAF2" />
        <zonetemplate>
          <aspSample:TextDisplayWebPart 
            runat="server"   
            id="textwebpart" 
            title = "Text Content WebPart" />
        </zonetemplate>
    </asp:webpartzone>
  </form>
</body>
</html>

Hinweise

Nachdem ein Benutzer ein WebPart Steuerelement auf einer Webseite geschlossen hat, ist das Steuerelement nicht mehr sichtbar oder auf der Seite verfügbar. Das geschlossene Steuerelement wird dem Seitenkatalog hinzugefügt, eine Webparts Entität, die einen Verweis auf das Steuerelement speichert. Wenn ein Entwickler der Seite innerhalb eines CatalogZone Steuerelements ein PageCatalogPart Steuerelement hinzufügt, können Benutzer die Seite zum Kataloganzeigemodus wechseln, das geschlossene Steuerelement im Seitenkatalog auswählen und es zur Seite hinzufügen.

Hinweis

Ein geschlossenes WebPart Steuerelement kann einer Seite entweder programmgesteuert oder von einem Benutzer hinzugefügt werden, der das geschlossene Steuerelement aus dem Seitenkatalog auswählt, wenn sich die Seite im Kataloganzeigemodus befindet.

Das Schließen eines WebPart Steuerelements unterscheidet sich vom Löschen. Ein geschlossenes Steuerelement kann zurück zu einer Seite hinzugefügt werden, während ein gelöschtes Steuerelement dauerhaft entfernt wird. Weitere Informationen zum Löschen von Steuerelementen finden Sie in der DeleteWebPart Methode. Das Schließen eines Steuerelements unterscheidet sich auch vom Ausblenden. Ein Steuerelement, das auf der Seite ausgeblendet ist, teilnimmt weiterhin an Seitenlebenszyklusereignissen und ist nur aus der Ansicht des Benutzers ausgeblendet, aber ein geschlossenes Steuerelement wird nicht einmal auf einer Seite gerendert.

Sowohl statische WebPart als auch dynamische Steuerelemente (statische Steuerelemente werden im Markup einer Seite deklariert, während dynamische Steuerelemente programmgesteuert hinzugefügt werden) geschlossen werden können.

Wenn ein Entwickler die AllowClose Eigenschaft auf falselegt, wird ein schließende Verb nicht auf dem Steuerelement angezeigt, und der Benutzer kann das Steuerelement nicht schließen.

Diese Eigenschaft kann nicht durch Designs oder Stylesheetdesigns festgelegt werden. Weitere Informationen finden Sie unter ThemeableAttribute und ASP.NET-Designs und Skins.

Der Personalisierungsbereich dieser Eigenschaft wird auf Shared festgelegt und kann nur von autorisierten Benutzern geändert werden. Weitere Informationen finden Sie unter PersonalizableAttribute und Webparts Übersicht über die Personalisierung.

Gilt für

Siehe auch