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

プロパティ値

Boolean

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

属性

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

この例の最初の部分には、という名前TextDisplayWebPartのカスタム WebPart コントロールのコードが含まれています。 カスタム コントロールのコンストラクターでは、 TextDisplayWebPart.AllowClose ユーザーが Web ページ上のコントロールを false閉じないようにする効果があるプロパティが設定されていることに注意してください。 つまり、コントロールの動詞メニューの閉じる動詞は、ユーザーに対して無効になります。 コード例を実行するには、このソース コードをコンパイルする必要があります。 明示的にコンパイルし、結果のアセンブリを 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 パーツ エンティティ) に追加されます。 開発者がコントロール内CatalogZonePageCatalogPartページにコントロールを追加すると、ユーザーはページをカタログ表示モードに切り替え、ページ カタログで閉じたコントロールを選択し、ページに追加し直します。

注意

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

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

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

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

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

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

適用対象

こちらもご覧ください