Udostępnij za pośrednictwem


WebPartManager.DeleteWarning Właściwość

Definicja

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.

Dotyczy

Zobacz też