WebPartManager.DeleteWarning Proprietà

Definizione

Ottiene o imposta un messaggio di avviso personalizzato visualizzato dagli utenti finali quando eliminano un controllo.

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

Valore della proprietà

Stringa che contiene il testo del messaggio di avviso. Il valore predefinito è un messaggio di avviso localizzato.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso della DeleteWarning proprietà in modo dichiarativo e a livello di codice.

L'esempio di codice include quattro parti:

  • Controllo utente che consente di modificare le modalità di visualizzazione della pagina.

  • Controllo personalizzato WebPart .

  • Pagina Web.

  • Spiegazione del funzionamento dell'esempio in un browser.

La prima parte dell'esempio di codice è il controllo utente per modificare le modalità di visualizzazione. È possibile ottenere il codice sorgente per il controllo utente dalla sezione Esempio della panoramica della WebPartManager classe. Per altre informazioni sulle modalità di visualizzazione e sul funzionamento del controllo utente, vedere Procedura dettagliata: Modifica delle modalità di visualizzazione in una pagina web part.

La seconda parte dell'esempio di codice è il controllo personalizzato WebPart . Per eseguire l'esempio di codice, è necessario compilare questo codice sorgente. È possibile compilarlo in modo esplicito e inserire l'assembly risultante nella cartella Bin del sito Web o nella Global Assembly Cache. In alternativa, è possibile inserire il codice sorgente nella cartella App_Code del sito, in cui verrà compilato in modo dinamico in fase di esecuzione. In questo esempio viene usato l'approccio di compilazione dinamica; pertanto non esiste alcun Assembly attributo nella Register direttiva per questo controllo nella parte superiore della pagina Web. Per una procedura dettagliata che illustra come eseguire la compilazione, vedere Procedura dettagliata: sviluppo e uso di un controllo server Web personalizzato.

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

La terza parte dell'esempio di codice è la pagina Web. La pagina contiene una CatalogZone zona, con il controllo personalizzato WebPart dichiarato nell'area, in modo che un utente possa aggiungerlo alla pagina in fase di esecuzione. Si noti che solo i controlli dinamici (i controlli aggiunti a una pagina a livello di codice o da un catalogo come questo) possono essere eliminati da una pagina. I controlli statici (controlli dichiarati all'interno di una WebPartZoneBase zona nel markup di una pagina) possono essere chiusi, ma non eliminati. L'elemento <asp:webpartmanager> dichiara un valore personalizzato per la DeleteWarning proprietà usando l'attributo DeleteWarning . Il Button1_Click metodo assegna un altro valore personalizzato alla DeleteWarning proprietà .

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

Dopo aver caricato la pagina in un browser, è necessario aggiungere il WebPart controllo alla pagina. Usando il controllo elenco a discesa Modalità di visualizzazione , selezionare la modalità catalogo. Quando viene visualizzato il catalogo, selezionare la casella di controllo accanto al controllo personalizzato, fare clic su Aggiungi per aggiungerlo alla pagina e quindi fare clic su Chiudi per restituire la pagina in modalità di esplorazione. Ora che il controllo è visibile, è possibile eliminarlo. Usando di nuovo il controllo Modalità di visualizzazione , impostare la pagina in modalità progettazione (non è possibile eliminare i controlli mentre la pagina è in modalità di esplorazione). Fare clic sul menu dei verbi (simbolo di freccia) nell'intestazione del WebPart controllo e selezionare Elimina. Viene visualizzato l'avviso impostato sull'attributo DeleteWarning . Fare clic su Annulla. Fare ora clic sul pulsante Con l'etichetta Cambia avviso di eliminazione, che modifica il valore della proprietà a livello di codice. Dal menu verbi del controllo selezionare di nuovo Elimina e notare che questa volta viene visualizzato l'altro messaggio di avviso.

Commenti

Quando un utente elimina un WebPart controllo, viene visualizzato in genere un messaggio di avviso predefinito. Avvisa l'utente che quando questa istanza di un controllo viene eliminata, l'eliminazione è permanente. Lo sviluppatore di pagine potrebbe fornire agli utenti un modo per aggiungere una nuova istanza del controllo alla pagina ,ad esempio tramite un catalogo di WebPart controlli o tramite alcuni mezzi programmatici, ma l'istanza corrente di un controllo eliminato viene rimossa definitivamente. La finestra di dialogo che visualizza l'avviso include un pulsante che consente all'utente di annullare l'eliminazione, se lo si desidera.

La DeleteWarning proprietà consente agli sviluppatori di impostare il messaggio di avviso visualizzato all'utente.

Se uno sviluppatore di pagine assegna un valore stringa vuota ("") a questa proprietà, non verrà visualizzata alcuna finestra di dialogo di messaggio di avviso quando un utente elimina un WebPart controllo.

Nota

La DeleteWarning proprietà non viene visualizzata nel caso di controlli statici WebPart e controlli server. I controlli statici sono controlli server dichiarati all'interno di una WebPartZoneBase zona nel markup di una pagina Web. Poiché tali controlli sono statici, non possono essere eliminati, pertanto il messaggio di avviso di eliminazione non viene mai visualizzato in questo caso. I controlli statici possono essere chiusi da un utente, ma un controllo chiuso viene aggiunto al catalogo di pagine, da cui può essere aggiunto di nuovo alla pagina da un utente, mentre un controllo eliminato non può mai essere recuperato.

Si applica a

Vedi anche