WebPart.AllowClose Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
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 Panoramica della personalizzazione delle web part.