WebPartManager.DeleteWarning Eigenschaft

Definition

Ruft eine benutzerdefinierte Warnmeldung ab oder legt diese fest, die angezeigt wird, wenn Endbenutzer ein Steuerelement löschen.

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

Eigenschaftswert

Eine Zeichenfolge, die den Text der Warnmeldung enthält. Der Standardwert ist eine lokalisierte Warnmeldung.

Beispiele

Im folgenden Codebeispiel wird die deklarative und programmgesteuerte Verwendung der DeleteWarning -Eigenschaft veranschaulicht.

Das Codebeispiel besteht aus vier Teilen:

  • Ein Benutzersteuerelement, mit dem Sie seitenanzeigemodi ändern können.

  • Ein benutzerdefiniertes WebPart Steuerelement.

  • Eine Webseite.

  • Eine Erläuterung der Funktionsweise des Beispiels in einem Browser.

Der erste Teil des Codebeispiels ist das Benutzersteuerelement zum Ändern der Anzeigemodi. Sie können den Quellcode für das Benutzersteuerelement im Abschnitt Beispiel der WebPartManager Klassenübersicht abrufen. Weitere Informationen zu Anzeigemodi und zur Funktionsweise des Benutzersteuerelements finden Sie unter Exemplarische Vorgehensweise: Ändern von Anzeigemodi auf einer Webparts-Seite.

Der zweite Teil des Codebeispiels ist das benutzerdefinierte WebPart Steuerelement. Damit das Codebeispiel ausgeführt werden kann, müssen Sie diesen Quellcode kompilieren. Sie können sie explizit kompilieren und die resultierende Assembly im Ordner Bin ihrer Website oder im globalen Assemblycache ablegen. Alternativ können Sie den Quellcode im Ordner App_Code Ihrer Website ablegen, wo er zur Laufzeit dynamisch kompiliert wird. In diesem Beispiel wird der Dynamische Kompilierungsansatz verwendet. Daher ist oben auf der Webseite kein Assembly Attribut in der Register -Direktive für dieses Steuerelement vorhanden. Eine exemplarische Vorgehensweise, die das Kompilieren veranschaulicht, finden Sie unter Exemplarische Vorgehensweise: Entwickeln und Verwenden eines benutzerdefinierten Webserversteuerelements.

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

Der dritte Teil des Codebeispiels ist die Webseite. Die Seite enthält eine CatalogZone Zone, in der das benutzerdefinierte WebPart Steuerelement in der Zone deklariert ist, sodass ein Benutzer es zur Laufzeit der Seite hinzufügen kann. Beachten Sie, dass nur dynamische Steuerelemente (Steuerelemente, die programmgesteuert zu einer Seite oder aus einem Katalog wie diesem hinzugefügt werden) von einer Seite gelöscht werden können. Statische Steuerelemente (Steuerelemente, die innerhalb einer WebPartZoneBase Zone im Markup einer Seite deklariert werden) können geschlossen, aber nie gelöscht werden. Das <asp:webpartmanager> -Element deklariert mithilfe des DeleteWarning -Attributs einen benutzerdefinierten Wert für die DeleteWarning -Eigenschaft. Die Button1_Click -Methode weist der DeleteWarning -Eigenschaft einen weiteren benutzerdefinierten Wert zu.

<%@ 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>

Nachdem Sie die Seite in einem Browser geladen haben, müssen Sie das WebPart -Steuerelement der Seite hinzufügen. Wählen Sie mithilfe des Dropdownlistensteuerelements Anzeigemodus den Katalogmodus aus. Wenn der Katalog angezeigt wird, aktivieren Sie das Kontrollkästchen neben dem benutzerdefinierten Steuerelement, klicken Sie auf Hinzufügen , um es der Seite hinzuzufügen, und klicken Sie dann auf Schließen , um die Seite in den Suchmodus zurückzugeben. Nachdem das Steuerelement nun sichtbar ist, können Sie es löschen. Wenn Sie das Anzeigemodus-Steuerelement erneut verwenden, wechseln Sie die Seite in den Entwurfsmodus (Sie können Steuerelemente nicht löschen, während sich die Seite im Durchstöbermodus befindet). Klicken Sie in der Kopfzeile des WebPart Steuerelements auf das Verbenmenü (das Pfeilsymbol), und wählen Sie Löschen aus. Die Warnung, die Sie für das DeleteWarning Attribut festlegen, wird angezeigt. Klicken Sie auf Abbrechen. Klicken Sie nun auf die Schaltfläche Warnung zum Löschen ändern, wodurch der Eigenschaftswert programmgesteuert geändert wird. Wählen Sie im Menü Verben des Steuerelements erneut Löschen aus, und beachten Sie, dass dieses Mal die andere Warnmeldung angezeigt wird.

Hinweise

Wenn ein Benutzer ein WebPart Steuerelement löscht, wird normalerweise eine Standardwarnung angezeigt. Der Benutzer wird gewarnt, dass die Löschung dauerhaft erfolgt, wenn diese Instanz eines Steuerelements gelöscht wird. Der Seitenentwickler bietet Benutzern möglicherweise eine Möglichkeit, der Seite eine neue Instanz des Steuerelements hinzuzufügen (z. B. über einen Katalog von WebPart Steuerelementen oder durch programmgesteuerte Mittel), aber die aktuelle Instanz eines Steuerelements, das gelöscht wird, wird dauerhaft entfernt. Das Dialogfeld, in dem die Warnung angezeigt wird, enthält eine Schaltfläche, mit der der Benutzer den Löschvorgang bei Bedarf abbrechen kann.

Mit DeleteWarning der -Eigenschaft können Entwickler die Warnmeldung festlegen, die dem Benutzer angezeigt wird.

Wenn ein Seitenentwickler dieser Eigenschaft einen leeren Zeichenfolgenwert ("") zuweist, wird kein Warnmeldungsdialogfeld angezeigt, wenn ein Benutzer ein WebPart Steuerelement löscht.

Hinweis

Die DeleteWarning -Eigenschaft wird bei statischen WebPart Steuerelementen und Serversteuerelementen nicht angezeigt. Statische Steuerelemente sind Serversteuerelemente, die innerhalb einer WebPartZoneBase Zone im Markup einer Webseite deklariert werden. Da solche Steuerelemente statisch sind, können sie nicht gelöscht werden, sodass die Löschwarnung in diesem Fall nie angezeigt wird. Statische Steuerelemente können von einem Benutzer geschlossen werden, aber dem Seitenkatalog wird ein geschlossenes Steuerelement hinzugefügt, aus dem es von einem Benutzer zurück zur Seite hinzugefügt werden kann, während ein gelöschtes Steuerelement nie wiederhergestellt werden kann.

Gilt für:

Weitere Informationen