WebPart.AllowClose Propiedad

Definición

Obtiene o establece un valor que indica si un usuario final puede cerrar un control WebPart en una página Web.Gets or sets a value indicating whether an end user can close a WebPart control on a Web page.

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 de propiedad

Boolean

true si el control puede cerrarse en la página Web; en caso contrario, false.true if the control can be closed on a Web page; otherwise, false. El valor predeterminado es true.The default value is true.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo cambiar el valor predeterminado de la AllowClose propiedad de un WebPart control personalizado, de modo que no se pueda cerrar.The following code example demonstrates how to change the default setting of the AllowClose property for a custom WebPart control, so that it cannot be closed.

La primera parte de este ejemplo contiene el código de un WebPart control personalizado denominado TextDisplayWebPart .The first part of this example contains the code for a custom WebPart control named TextDisplayWebPart. Tenga en cuenta que en el constructor del control personalizado, la TextDisplayWebPart.AllowClose propiedad se establece en false , lo que tiene el efecto de impedir que los usuarios cierren el control en una página web.Note that in the constructor of the custom control, the TextDisplayWebPart.AllowClose property is set to false, which has the effect of preventing users from closing the control on a Web page. Esto significa que se deshabilitará el verbo cerrar en el menú de verbos del control para los usuarios.This means that the close verb on the verbs menu of the control will be disabled for users. Para que el ejemplo de código se ejecute, debe compilar este código fuente.For the code example to run, you must compile this source code. Puede compilarlo explícitamente y colocar el ensamblado resultante en la carpeta bin del sitio web o en la caché global de ensamblados.You can compile it explicitly and put the resulting assembly in your Web site's Bin folder or the global assembly cache. Como alternativa, puede colocar el código fuente en la carpeta App_Code del sitio, donde se compilará dinámicamente en tiempo de ejecución.Alternatively, you can put the source code in your site's App_Code folder, where it will be dynamically compiled at run time. En este ejemplo de código se supone que se compila el código fuente en un ensamblado, se coloca en una subcarpeta bin de la aplicación web y se hace referencia al ensamblado con una Register Directiva en la Página Web.This code example assumes that you compile the source code into an assembly, place it in a Bin subfolder of your Web application, and reference the assembly with a Register directive in your Web page. Para ver un tutorial que muestra ambos métodos de compilación, vea Tutorial: desarrollar y utilizar un control de servidor web personalizado.For a walkthrough that demonstrates both methods of compiling, see Walkthrough: Developing and Using a Custom Web Server Control.

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

En la segunda parte del ejemplo se muestra cómo hacer referencia al TextDisplayWebPart control en una página web de ASP.net.The second part of the example shows how to reference the TextDisplayWebPart control in an ASP.NET Web page. Tenga en cuenta que en el <aspSample:TextDisplayWebPart> elemento que hace referencia al control, también puede cambiar el valor de la propiedad establecida por el constructor del control.Note that in the <aspSample:TextDisplayWebPart> element that references the control, you could also change the value of the property set by the control's constructor. Para permitir el cierre del control, basta con agregar un AllowClose="true" atributo al elemento en el marcado declarativo.To allow the control to be closed, simply add an AllowClose="true" attribute to the element in the declarative markup.

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

Comentarios

Una vez que un usuario cierra un WebPart control en una página web, el control ya no está visible ni disponible en la página.After a user closes a WebPart control on a Web page, the control is no longer visible or available on the page. El control cerrado se agrega al catálogo de páginas, una entidad elementos web que almacena una referencia al control.The closed control is added to the page catalog, a Web Parts entity that stores a reference to the control. Si un desarrollador agrega un PageCatalogPart control a la página dentro de un CatalogZone control, los usuarios pueden cambiar la página al modo de visualización del catálogo, seleccionar el control cerrado en el catálogo de páginas y volver a agregarlo a la página.If a developer adds a PageCatalogPart control to the page within a CatalogZone control, users are able to switch the page to catalog display mode, select the closed control in the page catalog, and add it back to the page.

Nota

Un WebPart control cerrado se puede volver a agregar a una página mediante programación, o bien por un usuario que selecciona el control cerrado desde el catálogo de páginas cuando la página está en el modo de presentación del catálogo.A closed WebPart control can be added back to a page either programmatically, or by a user who selects the closed control from the page catalog when the page is in catalog display mode.

Cerrar un WebPart control es diferente de eliminarlo.Closing a WebPart control is different from deleting it. Un control cerrado se puede volver a agregar a una página, mientras que un control eliminado se quita permanentemente.A closed control can be added back to a page, while a deleted control is permanently removed. Para obtener más información sobre cómo eliminar controles, vea el DeleteWebPart método.For more information on deleting controls, see the DeleteWebPart method. El cierre de un control también es diferente de ocultarlo.Closing a control is also different from hiding it. Un control que está oculto todavía está presente en la página, sigue participando en los eventos del ciclo de vida de la página y solo está oculto en la vista del usuario, pero un control cerrado no se representa siquiera en una página.A control that is hidden is still present on the page, still participates in page life cycle events, and is only hidden from the user's view, but a closed control is not even rendered on a page.

Los controles estáticos y dinámicos WebPart (los controles estáticos se declaran en el marcado de una página, mientras que los controles dinámicos se agregan mediante programación) se pueden cerrar.Both static and dynamic WebPart controls (static controls are declared in a page's markup, while dynamic controls are added programmatically) can be closed.

Si un desarrollador establece la AllowClose propiedad en false , un verbo de cierre no aparece en el control y el usuario no puede cerrar el control.If a developer sets the AllowClose property to false, a close verb does not appear on the control, and the user is not able to close the control.

Esta propiedad no se puede establecer mediante temas o temas de la hoja de estilos.This property cannot be set by themes or style sheet themes. Para obtener más información, vea ThemeableAttribute y temas y máscaras de ASP.net.For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

El ámbito de personalización de esta propiedad se establece en Shared y solo los usuarios autorizados pueden modificarla.The personalization scope of this property is set to Shared and can be modified only by authorized users. Para obtener más información, vea PersonalizableAttribute y elementos Web información general sobre la personalización.For more information, see PersonalizableAttribute and Web Parts Personalization Overview.

Se aplica a

Consulte también