WebPart.AllowClose プロパティ

定義

エンド ユーザーが Web ページで 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

プロパティ値

Web ページでコントロールを終了できる場合は true。それ以外の場合は false。 既定値は true です。

属性

次のコード例では、カスタム WebPart コントロールのプロパティの既定の設定をAllowClose変更して閉じないようにする方法を示します。

この例の最初の部分には、 という名前TextDisplayWebPartのカスタム WebPart コントロールのコードが含まれています。 カスタム コントロールのコンストラクターでは、 TextDisplayWebPart.AllowClose プロパティが に設定されていることに false注意してください。このプロパティは、ユーザーが Web ページ上のコントロールを閉じないようにする効果があります。 つまり、コントロールの動詞メニューの閉じる動詞は、ユーザーに対して無効になります。 コード例を実行するには、このソース コードをコンパイルする必要があります。 明示的にコンパイルし、結果のアセンブリを Web サイトの Bin フォルダーまたはグローバル アセンブリ キャッシュに配置できます。 または、ソース コードをサイトの App_Code フォルダーに配置して、実行時に動的にコンパイルすることもできます。 このコード例では、ソース コードをアセンブリにコンパイルし、Web アプリケーションの Bin サブフォルダーに配置し、Web ページの ディレクティブを使用 Register してアセンブリを参照することを前提としています。 両方のコンパイル方法を示すチュートリアルについては、「 チュートリアル: カスタム 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

この例の 2 番目の部分では、ASP.NET Web ページでコントロールを参照 TextDisplayWebPart する方法を示します。 コントロールを <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>

注釈

ユーザーが Web ページ上のコントロールを WebPart 閉じると、そのコントロールはページに表示または使用できなくなります。 閉じたコントロールは、コントロールへの参照を格納する Web パーツ エンティティであるページ カタログに追加されます。 開発者がコントロール内CatalogZoneのページにコントロールを追加PageCatalogPartすると、ユーザーはページをカタログ表示モードに切り替え、ページ カタログで閉じたコントロールを選択して、ページに追加し直すことができるようになります。

注意

閉じた WebPart コントロールは、プログラムによってページに追加することも、ページがカタログ表示モードのときにページ カタログから閉じたコントロールを選択するユーザーによって追加することもできます。

コントロールを閉じると WebPart 、コントロールを削除するのとは異なります。 閉じたコントロールはページに戻すことができますが、削除されたコントロールは完全に削除されます。 コントロールの削除の詳細については、 メソッドを DeleteWebPart 参照してください。 コントロールを閉じると非表示にすることも異なります。 非表示のコントロールは、ページ上にまだ存在し、ページ ライフ サイクル イベントに引き続き参加し、ユーザーのビューからは非表示になりますが、閉じたコントロールはページにレンダリングされません。

静的コントロールと動的 WebPart コントロールの両方 (静的コントロールはページのマークアップで宣言されますが、動的コントロールはプログラムによって追加されます) は閉じることができます。

開発者が プロパティを AllowClose に設定すると false、閉じる動詞はコントロールに表示されず、ユーザーはコントロールを閉じることができません。

このプロパティは、テーマまたはスタイル シート テーマによって設定することはできません。 詳細については、「テーマとスキンの ASP.NET」を参照してくださいThemeableAttribute

このプロパティのパーソナル化スコープは に Shared 設定され、承認されたユーザーのみが変更できます。 詳細については、「および Web パーツのパーソナル化の概要」を参照してくださいPersonalizableAttribute

適用対象

こちらもご覧ください