WebPart.AllowClose Proprietà

Definizione

Ottiene o imposta un valore che indica se un utente finale può chiudere un controllo WebPart in una pagina 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

Valore della proprietà

Boolean

true se il controllo può essere chiuso in una pagina Web. In caso contrario, false. Il valore predefinito è true.

Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come modificare l'impostazione predefinita della AllowClose proprietà per un controllo personalizzato WebPart , in modo che non possa essere chiusa.

La prima parte di questo esempio contiene il codice per un controllo personalizzato WebPart denominato TextDisplayWebPart. Si noti che nel costruttore del controllo personalizzato la TextDisplayWebPart.AllowClose proprietà è impostata su false, che ha l'effetto di impedire agli utenti di chiudere il controllo in una pagina Web. Ciò significa che il verbo di chiusura nel menu dei verbi del controllo verrà disabilitato per gli utenti. Per eseguire l'esempio di codice, è necessario compilare questo codice sorgente. È possibile compilarlo in modo esplicito e inserire l'assembly risultante nella cartella Bin del sito Web o nella Global Assembly Cache. In alternativa, è possibile inserire il codice sorgente nella cartella App_Code del sito, in cui verrà compilato in modo dinamico in fase di esecuzione. In questo esempio di codice si presuppone che il codice sorgente venga compilato in un assembly, lo si inserisca in una sottocartella Bin dell'applicazione Web e si faccia riferimento all'assembly con una Register direttiva nella pagina Web. Per una procedura dettagliata che illustra entrambi i metodi di compilazione, vedere Procedura dettagliata: sviluppo e uso di un controllo server Web personalizzato.

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 TextDisplayWebPart controllo in una pagina Web ASP.NET. Si noti che nell'elemento <aspSample:TextDisplayWebPart> che fa riferimento al controllo, è anche possibile modificare il valore della proprietà impostata dal costruttore del controllo. Per consentire la chiusura del controllo, è sufficiente aggiungere un AllowClose="true" attributo all'elemento nel markup dichiarativo.

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

Dopo che un utente chiude un WebPart controllo in una pagina Web, il controllo non è più visibile o disponibile nella pagina. Il controllo chiuso viene aggiunto al catalogo di pagine, un'entità Web part che archivia un riferimento al controllo. Se uno sviluppatore aggiunge un PageCatalogPart controllo alla pagina all'interno di un CatalogZone controllo, gli utenti possono passare alla modalità di visualizzazione del catalogo, selezionare il controllo chiuso nel catalogo pagine e aggiungerlo di nuovo alla pagina.

Nota

Un controllo chiuso WebPart può essere aggiunto di nuovo a una pagina a livello di codice o da un utente che seleziona il controllo chiuso dal catalogo di pagine quando la pagina è in modalità di visualizzazione del catalogo.

La chiusura di un WebPart controllo è diversa dall'eliminazione. Un controllo chiuso può essere aggiunto di nuovo a una pagina, mentre un controllo eliminato viene rimosso definitivamente. Per altre informazioni sull'eliminazione dei controlli, vedere il DeleteWebPart metodo . Anche la chiusura di un controllo è diversa da nasconderla. 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 nemmeno eseguito il rendering di un controllo chiuso in una pagina.

Sia i controlli statici che dinamici WebPart (i controlli statici vengono dichiarati nel markup di una pagina, mentre i controlli dinamici vengono aggiunti a livello di codice) possono essere chiusi.

Se uno sviluppatore imposta la AllowClose proprietà su false, non viene visualizzato un verbo di chiusura nel controllo e l'utente non è in grado di chiudere il controllo.

Questa proprietà non può essere impostata da temi oppure temi di fogli di stile. Per altre informazioni, vedere ThemeableAttribute e ASP.NET Temi e interfacce.

L'ambito di personalizzazione di questa proprietà è impostato su Shared e può essere modificato solo dagli utenti autorizzati. Per altre informazioni, vedere PersonalizableAttribute e Web part Panoramica della personalizzazione.

Si applica a

Vedi anche