WebPart.AllowClose Proprietà

Definizione

Ottiene o imposta un valore che indica se un utente finale può chiudere un controllo WebPart in una pagina 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; }
member this.AllowClose : bool with get, set
Public Overridable Property AllowClose As Boolean

Valore della proprietà

true se il controllo può essere chiuso in una pagina Web. In caso contrario, false.true if the control can be closed on a Web page; otherwise, false. Il valore predefinito è true.The default value is true.

Attributi

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come modificare l'impostazione predefinita della proprietà AllowClose per un controllo WebPart personalizzato, in modo che non possa essere chiusa.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 prima parte di questo esempio contiene il codice per un controllo WebPart personalizzato denominato TextDisplayWebPart.The first part of this example contains the code for a custom WebPart control named TextDisplayWebPart. Si noti che nel costruttore del controllo personalizzato la proprietà TextDisplayWebPart.AllowClose è impostata su false, che ha l'effetto di impedire agli utenti di chiudere il controllo in una pagina 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. Questo significa che il verbo di chiusura nel menu dei verbi del controllo verrà disabilitato per gli utenti.This means that the close verb on the verbs menu of the control will be disabled for users. Per eseguire l'esempio di codice, è necessario compilare questo codice sorgente.For the code example to run, you must compile this source code. È possibile compilarlo in modo esplicito e inserire l'assembly risultante nella cartella bin del sito Web o nel Global Assembly Cache.You can compile it explicitly and put the resulting assembly in your Web site's Bin folder or the global assembly cache. In alternativa, è possibile inserire il codice sorgente nella cartella App_Code del sito, in cui verrà compilata dinamicamente in fase di esecuzione.Alternatively, you can put the source code in your site's App_Code folder, where it will be dynamically compiled at run time. Questo esempio di codice presuppone che il codice sorgente venga compilato in un assembly, inserito in una sottocartella bin dell'applicazione Web e fare riferimento all'assembly con una direttiva Register nella pagina 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. Per una procedura dettagliata in cui vengono illustrati entrambi i metodi di compilazione, vedere procedura dettagliata: sviluppo e utilizzo di un controllo server Web personalizzato.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

Nella seconda parte dell'esempio viene illustrato come fare riferimento al controllo TextDisplayWebPart in una pagina Web ASP.NET.The second part of the example shows how to reference the TextDisplayWebPart control in an ASP.NET Web page. Si noti che nell'elemento <aspSample:TextDisplayWebPart> che fa riferimento al controllo, è anche possibile modificare il valore della proprietà impostata dal costruttore del controllo.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. Per consentire la chiusura del controllo, aggiungere semplicemente un AllowClose="true" attributo all'elemento nel markup dichiarativo.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>

Commenti

Quando un utente chiude un controllo WebPart in una pagina Web, il controllo non è più visibile o disponibile nella pagina.After a user closes a WebPart control on a Web page, the control is no longer visible or available on the page. Il controllo closed viene aggiunto al catalogo della pagina, un'entità Web part che archivia un riferimento al controllo.The closed control is added to the page catalog, a Web Parts entity that stores a reference to the control. Se uno sviluppatore aggiunge un controllo PageCatalogPart alla pagina all'interno di un controllo CatalogZone, gli utenti possono passare alla modalità di visualizzazione del catalogo, selezionare il controllo chiuso nel catalogo della pagina e aggiungerlo di nuovo alla pagina.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

È possibile aggiungere un controllo WebPart chiuso a una pagina a livello di codice o a un utente che seleziona il controllo chiuso dal catalogo della pagina quando la pagina è in modalità di visualizzazione del catalogo.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.

La chiusura di un controllo WebPart è diversa dall'eliminazione.Closing a WebPart control is different from deleting it. È possibile aggiungere di nuovo un controllo closed a una pagina, mentre un controllo eliminato viene rimosso definitivamente.A closed control can be added back to a page, while a deleted control is permanently removed. Per ulteriori informazioni sull'eliminazione di controlli, vedere il metodo DeleteWebPart.For more information on deleting controls, see the DeleteWebPart method. Anche la chiusura di un controllo è diversa dall'occultamento.Closing a control is also different from hiding it. Un controllo nascosto è ancora presente nella pagina, partecipa comunque agli eventi del ciclo di vita della pagina ed è nascosto solo dalla visualizzazione dell'utente, ma non viene ancora eseguito il rendering di un controllo chiuso in una pagina.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.

I controlli WebPart statici e dinamici (i controlli statici sono dichiarati nel markup di una pagina, mentre i controlli dinamici vengono aggiunti a livello di codice) possono essere chiusi.Both static and dynamic WebPart controls (static controls are declared in a page's markup, while dynamic controls are added programmatically) can be closed.

Se uno sviluppatore imposta la proprietà AllowClose su false, un verbo di chiusura non viene visualizzato nel controllo e l'utente non è in grado di chiudere il controllo.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.

Questa proprietà non può essere impostata da temi oppure temi di fogli di stile.This property cannot be set by themes or style sheet themes. Per ulteriori informazioni, vedere i temi e le interfaccedi ThemeableAttribute e ASP.NET.For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

L'ambito di personalizzazione di questa proprietà è impostato su Shared e può essere modificato solo da utenti autorizzati.The personalization scope of this property is set to Shared and can be modified only by authorized users. Per ulteriori informazioni, vedere PersonalizableAttribute e Web part Cenni preliminari sulla personalizzazione.For more information, see PersonalizableAttribute and Web Parts Personalization Overview.

Si applica a

Vedi anche