Поделиться через


WebPart.AllowClose Свойство

Определение

Получает или задает значение, указывающее возможность закрытия конечным пользователем элемента управления WebPart на веб-странице.

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

Значение свойства

true, если элемент управления может быть закрыт на веб-странице; в противном случае — false. Значение по умолчанию — true.

Атрибуты

Примеры

В следующем примере кода показано, как изменить значение свойства по умолчанию для пользовательского AllowCloseWebPart элемента управления, чтобы его нельзя было закрыть.

Первая часть этого примера содержит код для пользовательского WebPart элемента управления с именем TextDisplayWebPart. Обратите внимание, что в конструкторе настраиваемого элемента управления свойству TextDisplayWebPart.AllowClose присваивается значение false, что не позволяет пользователям закрывать элемент управления на веб-странице. Это означает, что команда закрытия в меню команд элемента управления будет отключена для пользователей. Для выполнения примера кода необходимо скомпилировать этот исходный код. Ее можно скомпилировать явным образом и поместить полученную сборку в папку Bin веб-сайта или глобальный кэш сборок. Кроме того, исходный код можно поместить в папку App_Code сайта, где он будет динамически компилироваться во время выполнения. В этом примере кода предполагается, что исходный код компилируется в сборку, помещаете его во вложенную папку Bin веб-приложения и ссылаетесь на сборку Register с помощью директивы на веб-странице. Пошаговое руководство, демонстрирующее оба метода компиляции, см. в разделе Пошаговое руководство. Разработка и использование пользовательского серверного веб-элемента управления.

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

Во второй части примера показано, как ссылаться на TextDisplayWebPart элемент управления на веб-странице ASP.NET. Обратите внимание, что в элементе <aspSample:TextDisplayWebPart> , который ссылается на элемент управления, можно также изменить значение свойства, заданное конструктором элемента управления. Чтобы разрешить закрытие элемента управления, просто добавьте AllowClose="true" атрибут к элементу декларативной разметки.

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

Комментарии

После того как пользователь закрывает WebPart элемент управления на веб-странице, элемент управления становится невидимым или недоступным на странице. Закрытый элемент управления добавляется в каталог страницы— сущность веб-частей, в котором хранится ссылка на элемент управления. Если разработчик добавляет PageCatalogPart элемент управления на страницу в CatalogZone элементе управления, пользователи могут переключить страницу в режим отображения каталога, выбрать закрытый элемент управления в каталоге страниц и добавить его обратно на страницу.

Примечание

Закрытый WebPart элемент управления может быть добавлен на страницу либо программным способом, либо пользователем, который выбирает закрытый элемент управления из каталога страниц, когда страница находится в режиме отображения каталога.

WebPart Закрытие элемента управления отличается от удаления. Закрытый элемент управления можно добавить обратно на страницу, а удаленный элемент управления окончательно удаляется. Дополнительные сведения об удалении элементов управления см. в описании DeleteWebPart метода . Закрытие элемента управления также отличается от его скрытия. Скрытый элемент управления по-прежнему присутствует на странице, по-прежнему участвует в событиях жизненного цикла страницы и скрыт только в представлении пользователя, но закрытый элемент управления даже не отображается на странице.

Статические и динамические WebPart элементы управления (статические элементы управления объявляются в разметке страницы, а динамические элементы управления добавляются программными средствами) можно закрыть.

Если разработчик задает AllowClose для свойства значение false, команда закрытия не отображается в элементе управления, и пользователь не может закрыть элемент управления.

Значение для данного свойства нельзя задать с помощью тем или тем таблиц стилей. Дополнительные сведения см. в разделах ThemeableAttribute и ASP.NET Темы и обложки.

Область персонализации этого свойства имеет значение Shared и может быть изменена только авторизованными пользователями. Дополнительные сведения см. в разделах и Общие сведения PersonalizableAttribute о персонализации веб-частей.

Применяется к

См. также раздел