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 屬性。
程式代碼範例有四個部分:
使用者控制件,可讓您變更頁面顯示模式。
自定義 WebPart 控制件。
網頁。
說明範例如何在瀏覽器中運作。
程式代碼範例的第一個部分是用來變更顯示模式的使用者控件。 您可以從類別概觀的 WebPartManager 範例區段取得使用者控制項的原始碼。 如需顯示模式和使用者控件運作方式的詳細資訊,請參閱 逐步解說:變更網頁元件頁面上的顯示模式。
程式代碼範例的第二個部分是自定義 WebPart 控制項。 若要執行程式碼範例,您必須編譯此原始程式碼。 您可以明確地編譯它,並將產生的元件放在網站的 Bin 資料夾或全域程式集緩存中。 或者,您也可以將原始程式碼放在月臺的 App_Code資料夾中,在運行時間會動態編譯原始程式碼。 此範例使用動態編譯方法;因此,這個控件在網頁頂端的 指示詞中Register
沒有 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
程式代碼範例的第三個部分是網頁。 頁面包含一個 CatalogZone 區域,其中包含區域中宣告的自定義 WebPart 控件,讓使用者可以在運行時間將它新增至頁面。 請注意,只有動態控件 (以程式設計方式新增至頁面的控件,或從類似此) 的目錄,可以從頁面刪除。 靜態控件 (可以在頁面標記中宣告) 區域內宣告 WebPartZoneBase 的控件,但永遠不會刪除。 元素<asp:webpartmanager>
會使用 屬性宣告 屬性的DeleteWarningDeleteWarning
自定義值。 方法 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 控件和伺服器控制件的情況下。 靜態控件是網頁標記中區域內 WebPartZoneBase 宣告的伺服器控件。 因為這類控件是靜態的,所以無法刪除這些控件,因此該案例中永遠不會顯示刪除警告訊息。 靜態控件可由使用者關閉,但已關閉的控件會新增至頁面目錄,使用者可以從中將其新增回頁面,而刪除的控件永遠無法復原。