WebPart.AllowClose Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość wskazującą, czy użytkownik końcowy może zamknąć kontrolkę WebPart na stronie sieci 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
Wartość właściwości
true
jeśli kontrolka może być zamknięta na stronie sieci Web; w przeciwnym razie , false
. Wartość domyślna to true
.
- Atrybuty
Przykłady
W poniższym przykładzie kodu pokazano, jak zmienić domyślne ustawienie AllowClose właściwości dla kontrolki niestandardowej WebPart , aby nie można było jej zamknąć.
Pierwsza część tego przykładu zawiera kod niestandardowej WebPart kontrolki o nazwie TextDisplayWebPart
. Należy pamiętać, TextDisplayWebPart.AllowClose
że w konstruktorze kontrolki niestandardowej właściwość jest ustawiona na false
, co ma wpływ na uniemożliwienie użytkownikom zamknięcia kontrolki na stronie sieci Web. Oznacza to, że czasownik zamknięcia w menu czasowników kontrolki zostanie wyłączony dla użytkowników. Aby można było uruchomić przykładowy kod, należy skompilować ten kod źródłowy. Można je skompilować jawnie i umieścić wynikowy zestaw w folderze Bin witryny sieci Web lub globalnej pamięci podręcznej zestawów. Alternatywnie można umieścić kod źródłowy w folderze App_Code witryny, w którym będzie dynamicznie kompilowany w czasie wykonywania. W tym przykładzie kodu przyjęto założenie, że skompilujesz kod źródłowy do zestawu, umieścisz go w podfolderze Bin aplikacji internetowej i odwołujesz się do zestawu dyrektywą Register
na stronie sieci Web. Aby zapoznać się z przewodnikiem, który demonstruje obie metody kompilowania, zobacz Przewodnik: opracowywanie i używanie niestandardowej kontrolki serwera sieci Web.
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
W drugiej części przykładu pokazano, jak odwoływać się do kontrolki TextDisplayWebPart
na stronie internetowej ASP.NET. Należy pamiętać, że w elemencie <aspSample:TextDisplayWebPart>
, który odwołuje się do kontrolki, można również zmienić wartość właściwości ustawionej przez konstruktora kontrolki. Aby umożliwić zamknięcie kontrolki, wystarczy dodać AllowClose="true"
atrybut do elementu w deklaratywnej adiustacji.
<%@ 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>
Uwagi
Gdy użytkownik zamknie kontrolkę WebPart na stronie sieci Web, kontrolka nie będzie już widoczna ani dostępna na stronie. Zamknięta kontrolka jest dodawana do wykazu stron— jednostki składników Web Part, która przechowuje odwołanie do kontrolki. Jeśli deweloper doda kontrolkę PageCatalogPart do strony w ramach CatalogZone kontrolki, użytkownicy będą mogli przełączyć stronę do trybu wyświetlania katalogu, wybrać zamkniętą kontrolkę w katalogu stron i dodać ją z powrotem do strony.
Uwaga
Zamkniętą WebPart kontrolkę można dodać z powrotem do strony programowo lub przez użytkownika, który wybiera zamkniętą kontrolkę z wykazu stron, gdy strona jest w trybie wyświetlania wykazu.
Zamykanie kontrolki WebPart różni się od jej usuwania. Zamkniętą kontrolkę można dodać z powrotem do strony, a usunięta kontrolka zostanie trwale usunięta. Aby uzyskać więcej informacji na temat usuwania kontrolek, zobacz metodę DeleteWebPart . Zamknięcie kontrolki różni się również od ukrywania. Kontrolka ukryta jest nadal obecna na stronie, nadal uczestniczy w zdarzeniach cyklu życia strony i jest ukryta tylko przed widokiem użytkownika, ale zamknięta kontrolka nie jest nawet renderowana na stronie.
Zarówno kontrolki statyczne, jak i dynamiczne WebPart (kontrolki statyczne są deklarowane w adiustacji strony, podczas gdy kontrolki dynamiczne są dodawane programowo) można zamknąć.
Jeśli deweloper ustawia AllowClose właściwość na false
, czasownik zamknięcia nie jest wyświetlany w kontrolce, a użytkownik nie może zamknąć kontrolki.
Tej właściwości nie można ustawić za pomocą motywów ani motywów arkusza stylów. Aby uzyskać więcej informacji, zobacz ThemeableAttributei ASP.NET Motywy i skórki.
Zakres personalizacji tej właściwości jest ustawiony na Shared i może być modyfikowany tylko przez autoryzowanych użytkowników. Aby uzyskać więcej informacji, zobacz PersonalizableAttribute i Web Part Personalization Overview (Omówienie personalizacji składników Web Part).