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

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

Attribute

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die Standardeinstellung der AllowClose Eigenschaft für ein benutzerdefiniertes WebPart Steuerelement so geändert wird, dass es nicht geschlossen werden kann.

Der erste Teil dieses Beispiels enthält den Code für ein benutzerdefiniertes WebPart Steuerelement mit dem Namen TextDisplayWebPart. Beachten Sie, dass die -Eigenschaft im Konstruktor des benutzerdefinierten Steuerelements auf falsefestgelegt ist, was verhindert, TextDisplayWebPart.AllowClose dass Benutzer das Steuerelement auf einer Webseite schließen. Dies bedeutet, dass das Schließen-Verb im Verbenmenü des Steuerelements für Benutzer deaktiviert wird. Damit das Codebeispiel ausgeführt werden kann, müssen Sie diesen Quellcode kompilieren. Sie können sie explizit kompilieren und die resultierende Assembly im Ordner Bin ihrer Website oder im globalen Assemblycache ablegen. Alternativ können Sie den Quellcode im App_Code Ordner Ihrer Website ablegen, wo er zur Laufzeit dynamisch kompiliert wird. In diesem Codebeispiel wird davon ausgegangen, dass Sie den Quellcode in eine Assembly kompilieren, ihn in einem Bin-Unterordner Ihrer Webanwendung platzieren und auf die Assembly mit einer Register Direktive 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 in einer ASP.NET-Webseite verwiesen wird. Beachten Sie, dass Sie in dem <aspSample:TextDisplayWebPart> Element, das auf das Steuerelement verweist, auch den Wert der Eigenschaft ändern können, die vom Konstruktor des Steuerelements festgelegt wurde. Damit das Steuerelement geschlossen werden kann, fügen Sie dem Element im deklarativen Markup einfach 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 auf der Seite nicht mehr sichtbar oder verfügbar. Das geschlossene Steuerelement wird dem Seitenkatalog hinzugefügt, einer Webpartentität, die einen Verweis auf das Steuerelement speichert. Wenn ein Entwickler der Seite innerhalb eines Steuerelements ein PageCatalogPartCatalogZone Steuerelement hinzufügt, können Benutzer die Seite in den Kataloganzeigemodus wechseln, das geschlossene Steuerelement im Seitenkatalog auswählen und es wieder der 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 einer Seite wieder hinzugefügt werden, während ein gelöschtes Steuerelement endgültig 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 ausgeblendetes Steuerelement ist weiterhin auf der Seite vorhanden, nimmt weiterhin an Seitenlebenszyklusereignissen teil und wird nur in der Ansicht des Benutzers ausgeblendet, aber ein geschlossenes Steuerelement wird nicht einmal auf einer Seite gerendert.

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

Wenn ein Entwickler die AllowClose Eigenschaft auf falsefestlegt, wird im Steuerelement kein schließende Verb 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 ist auf Shared festgelegt und kann nur von autorisierten Benutzern geändert werden. Weitere Informationen finden Sie unter PersonalizableAttributeund Übersicht über die Webpart-Personalisierung.

Gilt für:

Weitere Informationen