Udostępnij za pośrednictwem


WebPart.AllowClose Właściwość

Definicja

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).

Dotyczy

Zobacz też