WebPartManager.DeleteWarning Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia niestandardowy komunikat ostrzegawczy wyświetlany użytkownikom końcowym po usunięciu kontrolki.
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
Wartość właściwości
Ciąg zawierający tekst komunikatu ostrzegawczego. Wartość domyślna to zlokalizowany komunikat ostrzegawczy.
Przykłady
Poniższy przykład kodu demonstruje użycie DeleteWarning właściwości deklaratywnie i programowo.
Przykładowy kod ma cztery części:
Kontrolka użytkownika, która umożliwia zmianę trybów wyświetlania strony.
Kontrolka niestandardowa WebPart .
Strona sieci Web.
Wyjaśnienie działania przykładu w przeglądarce.
Pierwszą częścią przykładu kodu jest kontrolka użytkownika do zmieniania trybów wyświetlania. Kod źródłowy kontrolki użytkownika można uzyskać w sekcji Przykład w przeglądzie WebPartManager klasy. Aby uzyskać więcej informacji na temat trybów wyświetlania i sposobu działania kontrolki użytkownika, zobacz Przewodnik: zmienianie trybów wyświetlania na stronie składników Web Part.
Drugą częścią przykładu kodu jest kontrolka niestandardowa WebPart . Aby można było uruchomić przykładowy kod, należy skompilować ten kod źródłowy. Można je skompilować jawnie i umieścić wynikowy zestaw w folderze Bin witryny sieci Web lub globalnej pamięci podręcznej zestawów. Alternatywnie można umieścić kod źródłowy w folderze App_Code witryny, w którym będzie dynamicznie kompilowany w czasie wykonywania. W tym przykładzie użyto metody kompilacji dynamicznej; w dyrektywie nie Assembly
ma atrybutu Register
dla tej kontrolki w górnej części strony sieci Web. Aby zapoznać się z przewodnikiem, który pokazuje sposób kompilowania, zobacz Przewodnik: tworzenie i używanie niestandardowej kontrolki serwera sieci 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
Trzecią częścią przykładu kodu jest strona internetowa. Strona zawiera strefę z kontrolką niestandardową CatalogZoneWebPart zadeklarowaną w strefie, dzięki czemu użytkownik może dodać ją do strony w czasie wykonywania. Należy pamiętać, że z strony można usunąć tylko kontrolki dynamiczne (kontrolki dodawane do strony programowo lub z wykazu takiego jak ten). Kontrolki statyczne (kontrolki zadeklarowane w WebPartZoneBase strefie na znacznikach strony) można zamknąć, ale nigdy nie zostały usunięte. Element <asp:webpartmanager>
deklaruje wartość niestandardową dla DeleteWarning właściwości przy użyciu atrybutu DeleteWarning
. Metoda Button1_Click
przypisuje inną wartość niestandardową DeleteWarning do właściwości .
<%@ 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>
Po załadowaniu strony w przeglądarce należy dodać kontrolkę WebPart do strony. Za pomocą kontrolki listy rozwijanej Tryb wyświetlania wybierz pozycję Tryb wykazu. Po wyświetleniu wykazu zaznacz pole wyboru obok kontrolki niestandardowej, kliknij przycisk Dodaj , aby dodać go do strony, a następnie kliknij przycisk Zamknij , aby zwrócić stronę w trybie przeglądania. Teraz, gdy kontrolka jest widoczna, możesz ją usunąć. Ponownie za pomocą kontrolki Tryb wyświetlania przełącz stronę do trybu projektowania (nie można usunąć kontrolek, gdy strona jest w trybie przeglądania). Kliknij menu czasowników (symbol strzałki) w nagłówku kontrolki WebPart , a następnie wybierz pozycję Usuń. Zostanie wyświetlone ostrzeżenie ustawione na atrybucie DeleteWarning
. Kliknij przycisk Anuluj. Teraz kliknij przycisk z etykietą Zmień ostrzeżenie o usunięciu, które programowo zmienia wartość właściwości. Z menu czasowników w kontrolce wybierz ponownie pozycję Usuń i zwróć uwagę, że tym razem pojawi się inny komunikat ostrzegawczy.
Uwagi
Gdy użytkownik usunie kontrolkę WebPart , zwykle jest wyświetlany domyślny komunikat ostrzegawczy. Ostrzega użytkownika, że usunięcie tego wystąpienia kontrolki jest trwałe. Deweloper strony może zapewnić użytkownikom możliwość dodania nowego wystąpienia kontrolki do strony (na przykład za pośrednictwem wykazu WebPart kontrolek lub za pomocą niektórych środków programistycznych), ale bieżące wystąpienie usuniętej kontrolki zostanie trwale usunięte. Okno dialogowe z wyświetlonym ostrzeżeniem zawiera przycisk umożliwiający użytkownikowi anulowanie usunięcia, jeśli jest to konieczne.
Właściwość DeleteWarning umożliwia deweloperom ustawienie komunikatu ostrzegawczego wyświetlanego użytkownikowi.
Jeśli deweloper strony przypisze pustą wartość ciągu ("") do tej właściwości, okno dialogowe komunikatu ostrzegawczego nie będzie wyświetlane po usunięciu kontrolki WebPart przez użytkownika.
Uwaga
Właściwość nie jest wyświetlana DeleteWarning w przypadku kontrolek statycznych WebPart i kontrolek serwera. Kontrolki statyczne to kontrolki serwera zadeklarowane w WebPartZoneBase strefie na znacznikach strony sieci Web. Ponieważ takie kontrolki są statyczne, nie można ich usunąć, więc komunikat ostrzegawczy usuwania nigdy nie jest wyświetlany w tym przypadku. Kontrolki statyczne mogą być zamykane przez użytkownika, ale zamknięta kontrolka jest dodawana do katalogu stron, z której można ją dodać z powrotem do strony przez użytkownika, podczas gdy nie można odzyskać usuniętej kontrolki.