Compartilhar via


WebPart.AllowClose Propriedade

Definição

Obtém ou define um valor que indica se um usuário final pode fechar um controle WebPart em uma página da Web.

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

Valor da propriedade

true se o controle puder ser fechado em uma página da Web; caso contrário, false. O valor padrão é true.

Atributos

Exemplos

O exemplo de código a seguir demonstra como alterar a configuração padrão da AllowClose propriedade para um controle personalizado WebPart , para que ela não possa ser fechada.

A primeira parte deste exemplo contém o código de um controle personalizado WebPart chamado TextDisplayWebPart. Observe que, no construtor do controle personalizado, a TextDisplayWebPart.AllowClose propriedade é definida falsecomo , o que tem o efeito de impedir que os usuários fechem o controle em uma página da Web. Isso significa que o verbo close no menu de verbos do controle será desabilitado para os usuários. Para que o exemplo de código seja executado, você deve compilar esse código-fonte. Você pode compilá-lo explicitamente e colocar o assembly resultante na pasta Bin do site ou no cache de assembly global. Como alternativa, você pode colocar o código-fonte na pasta App_Code do site, na qual ele será compilado dinamicamente em tempo de execução. Este exemplo de código pressupõe que você compile o código-fonte em um assembly, coloque-o em uma subpasta Bin do aplicativo Web e faça referência ao assembly com uma Register diretiva em sua página da Web. Para obter um passo a passo que demonstra os dois métodos de compilação, consulte Passo a passo : desenvolvendo e usando um controle de servidor Web personalizado.

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

A segunda parte do exemplo mostra como referenciar o TextDisplayWebPart controle em uma página da Web ASP.NET. Observe que, no <aspSample:TextDisplayWebPart> elemento que faz referência ao controle , você também pode alterar o valor da propriedade definida pelo construtor do controle. Para permitir que o controle seja fechado, basta adicionar um AllowClose="true" atributo ao elemento na marcação declarativa.

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

Comentários

Depois que um usuário fecha um WebPart controle em uma página da Web, o controle não fica mais visível ou disponível na página. O controle fechado é adicionado ao catálogo de páginas, uma entidade de Web Parts que armazena uma referência ao controle. Se um desenvolvedor adicionar um PageCatalogPart controle à página dentro de um CatalogZone controle, os usuários poderão alternar a página para o modo de exibição de catálogo, selecionar o controle fechado no catálogo de páginas e adicioná-lo de volta à página.

Observação

Um controle fechado WebPart pode ser adicionado novamente a uma página programaticamente ou por um usuário que seleciona o controle fechado no catálogo de páginas quando a página está no modo de exibição de catálogo.

Fechar um WebPart controle é diferente de excluí-lo. Um controle fechado pode ser adicionado novamente a uma página, enquanto um controle excluído é removido permanentemente. Para obter mais informações sobre como excluir controles, consulte o DeleteWebPart método . Fechar um controle também é diferente de o ocultar. Um controle oculto ainda está presente na página, ainda participa de eventos do ciclo de vida da página e só está oculto do modo de exibição do usuário, mas um controle fechado nem sequer é renderizado em uma página.

Controles estáticos e dinâmicos WebPart (controles estáticos são declarados na marcação de uma página, enquanto os controles dinâmicos são adicionados programaticamente) podem ser fechados.

Se um desenvolvedor definir a AllowClose propriedade falsecomo , um verbo close não aparecerá no controle e o usuário não poderá fechar o controle.

Essa propriedade não pode ser definida por temas ou temas de folha de estilos. Para obter mais informações, consulte ThemeableAttribute e ASP.NET Temas e Capas.

O escopo de personalização dessa propriedade é definido Shared como e só pode ser modificado por usuários autorizados. Para obter mais informações, consulte PersonalizableAttribute e Visão geral de personalização de Web Parts.

Aplica-se a

Confira também