WebPart.AllowClose Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 false
como , 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 false
como , 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.