WebPartManager.DeleteWarning プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
エンド ユーザーがコントロールを削除したときにそのユーザーに対して表示するカスタム警告メッセージを取得または設定します。
public:
virtual property System::String ^ DeleteWarning { System::String ^ get(); void set(System::String ^ value); };
public virtual string DeleteWarning { get; set; }
member this.DeleteWarning : string with get, set
Public Overridable Property DeleteWarning As String
プロパティ値
警告メッセージのテキストが含まれる文字列。 既定値は、ローカライズされた警告メッセージです。
例
次のコード例では、 プロパティを DeleteWarning 宣言的およびプログラム的に使用する方法を示します。
コード例には、次の 4 つの部分があります。
ページ表示モードを変更できるユーザー コントロール。
カスタム WebPart コントロール。
Web ページ。
ブラウザーでのこの例の動作の説明。
コード例の最初の部分は、表示モードを変更するためのユーザー コントロールです。 ユーザー コントロールのソース コードは、クラスの概要の [例] セクション WebPartManager から取得できます。 表示モードとユーザー コントロールの動作の詳細については、「 チュートリアル: Web パーツ ページでの表示モードの変更」を参照してください。
コード例の 2 番目の部分は、カスタム WebPart コントロールです。 コード例を実行するには、このソース コードをコンパイルする必要があります。 明示的にコンパイルし、結果のアセンブリを Web サイトの Bin フォルダーまたはグローバル アセンブリ キャッシュに配置できます。 または、ソース コードをサイトの App_Code フォルダーに配置して、実行時に動的にコンパイルすることもできます。 この例では、動的コンパイル アプローチを使用します。したがって、このコントロールのRegister
ディレクティブには、Web ページの上部に属性はありませんAssembly
。 コンパイル方法を示すチュートリアルについては、「 チュートリアル: カスタム Web サーバー コントロールの開発と使用」を参照してください。
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
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;
Literal lineBreak;
[Personalizable(), WebBrowsable]
public String ContentText
{
get { return _contentText; }
set { _contentText = value; }
}
protected override void CreateChildControls()
{
Controls.Clear();
DisplayContent = new Label();
DisplayContent.BackColor = Color.LightBlue;
DisplayContent.Text = this.ContentText;
this.Controls.Add(DisplayContent);
lineBreak = new Literal();
lineBreak.Text = @"<br />";
Controls.Add(lineBreak);
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);
}
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.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
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 _fontStyle As String = Nothing
Private input As TextBox
Private DisplayContent As Label
Private lineBreak As Literal
<Personalizable(), WebBrowsable()> _
Public Property ContentText() As String
Get
Return _contentText
End Get
Set(ByVal value As String)
_contentText = value
End Set
End Property
Protected Overrides Sub CreateChildControls()
Controls.Clear()
DisplayContent = New Label()
DisplayContent.BackColor = Color.LightBlue
DisplayContent.Text = Me.ContentText
Me.Controls.Add(DisplayContent)
lineBreak = New Literal()
lineBreak.Text = "<br />"
Controls.Add(lineBreak)
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)
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
コード例の 3 番目の部分は Web ページです。 ユーザーが実行時にページに追加できるように、WebPartページにはゾーンが含CatalogZoneまれています。カスタム コントロールはゾーンで宣言されています。 ページから削除できるのは、動的コントロール (プログラムによってページに追加されるコントロール、またはこのようなカタログから追加されるコントロール) のみです。 静的コントロール (ページのマークアップ内の WebPartZoneBase ゾーン内で宣言されているコントロール) は閉じることができますが、削除することはできません。 要素は <asp:webpartmanager>
、 属性を使用して プロパティの DeleteWarning カスタム値を DeleteWarning
宣言します。 メソッドは Button1_Click
、 プロパティに別のカスタム値を DeleteWarning 割り当てます。
<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuCS"
Src="~/DisplayModeMenuCS.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.CS.Controls"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
const String NewWarning = @"If you delete this WebPart " +
"control instance, it will be permanently removed and " +
"cannot be retrieved. Do you still want to delete it?";
protected void Button1_Click(object sender, EventArgs e)
{
mgr1.DeleteWarning = NewWarning;
}
// Hide the button to change the property when there is
// no control available to delete.
protected void Page_Load(object sender, EventArgs e)
{
if (WebPartZone1.WebParts.Count == 0)
Button1.Visible = false;
else
Button1.Visible = true;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="mgr1" runat="server"
DeleteWarning="Do you want to delete this control?" />
<uc1:DisplayModeMenuCS ID="menu1" runat="server" />
<h2>Delete Warning Example Page</h2>
<asp:WebPartZone ID="WebPartZone1" runat="server" />
<asp:CatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:DeclarativeCatalogPart
ID="DeclarativeCatalogPart1"
runat="server">
<WebPartsTemplate>
<aspSample:TextDisplayWebPart ID="text1"
runat="server"
Title="My Text WebPart" />
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
</ZoneTemplate>
</asp:CatalogZone>
<asp:Button ID="Button1" runat="server"
Text="Change Delete Warning"
OnClick="Button1_Click" />
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuVB"
Src="~/DisplayModeMenuVB.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.VB.Controls"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Const NewWarning As String = "If you delete this WebPart " & _
"control instance, it will be permanently removed and " & _
"cannot be retrieved. Do you still want to delete it?"
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As System.EventArgs)
mgr1.DeleteWarning = NewWarning
End Sub
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As EventArgs)
If WebPartZone1.WebParts.Count = 0 Then
Button1.Visible = False
Else
Button1.Visible = True
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="mgr1" runat="server"
DeleteWarning="Do you want to delete this control?" />
<uc1:DisplayModeMenuVB ID="menu1" runat="server" />
<h2>Delete Warning Example Page</h2>
<asp:WebPartZone ID="WebPartZone1" runat="server" />
<asp:CatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:DeclarativeCatalogPart
ID="DeclarativeCatalogPart1"
runat="server">
<WebPartsTemplate>
<aspSample:TextDisplayWebPart ID="text1"
runat="server"
Title="My Text WebPart" />
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
</ZoneTemplate>
</asp:CatalogZone>
<asp:Button ID="Button1" runat="server"
Text="Change Delete Warning"
OnClick="Button1_Click" />
</form>
</body>
</html>
ブラウザーでページを読み込んだ後、コントロールを WebPart ページに追加する必要があります。
[表示モード] ドロップダウン リスト コントロールを使用して、カタログ モードを選択します。 カタログが表示されたら、カスタム コントロールの横にあるチェック ボックスをオンにし、[ 追加 ] をクリックしてページに追加し、[ 閉じる ] をクリックしてページを参照モードに戻します。 コントロールが表示されたので、削除できます。
表示モード コントロールをもう一度使用して、ページをデザイン モードに切り替えます (ページがブラウズ モードの間はコントロールを削除できません)。 コントロールのヘッダー WebPart にある動詞メニュー (矢印記号) をクリックし、[削除] を選択 します。 属性に対して設定した警告が DeleteWarning
表示されます。
[キャンセル] をクリックします。 次に、[ 削除の警告の変更] というラベルの付いたボタンをクリックします。これにより、プロパティの値がプログラムによって変更されます。 コントロールの動詞メニューから、もう一度 [削除 ] を選択し、今度は他の警告メッセージが表示されます。
注釈
ユーザーがコントロールを WebPart 削除すると、通常は既定の警告メッセージが表示されます。 コントロールのこのインスタンスが削除されると、削除は永続的であることをユーザーに警告します。 ページ開発者は、コントロールの新しいインスタンスをページに追加する方法 (コントロールの WebPart カタログ、プログラムによる方法など) をユーザーに提供する場合がありますが、削除されたコントロールの現在のインスタンスは完全に削除されます。 警告を表示するダイアログ ボックスには、必要に応じてユーザーが削除を取り消すボタンが含まれています。
DeleteWarningプロパティを使用すると、開発者はユーザーに表示される警告メッセージを設定できます。
ページ開発者がこのプロパティに空の文字列 ("") 値を割り当てた場合、ユーザーがコントロールを削除 WebPart しても警告メッセージ ダイアログ ボックスは表示されません。
注意
DeleteWarning静的WebPartコントロールとサーバー コントロールの場合、プロパティは表示されません。 静的コントロールは、Web ページのマークアップ内の WebPartZoneBase ゾーン内で宣言されるサーバー コントロールです。 このようなコントロールは静的であるため、削除できないため、削除警告メッセージは表示されません。 静的コントロールはユーザーが閉じることができますが、閉じたコントロールはページ カタログに追加され、そこからユーザーがページに戻すことができますが、削除されたコントロールは回復できません。
適用対象
こちらもご覧ください
.NET