WebPartManager.DeleteWarning Propriété

Définition

Obtient ou définit un message d'avertissement personnalisé affiché à l'attention des utilisateurs finaux lorsqu'ils suppriment un contrôle.

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

Valeur de propriété

Chaîne qui contient le texte du message d'avertissement. La valeur par défaut est un message d'avertissement localisé.

Exemples

L’exemple de code suivant illustre l’utilisation de la DeleteWarning propriété de manière déclarative et programmatique.

L’exemple de code comporte quatre parties :

  • Contrôle utilisateur qui vous permet de modifier les modes d’affichage des pages.

  • Contrôle personnalisé WebPart .

  • Une page web.

  • Explication du fonctionnement de l’exemple dans un navigateur.

La première partie de l’exemple de code est le contrôle utilisateur permettant de modifier les modes d’affichage. Vous pouvez obtenir le code source du contrôle utilisateur à partir de la section Exemple de la vue d’ensemble de la WebPartManager classe. Pour plus d’informations sur les modes d’affichage et le fonctionnement du contrôle utilisateur, consultez Procédure pas à pas : modification des modes d’affichage sur une page de composants WebPart.

La deuxième partie de l’exemple de code est le contrôle personnalisé WebPart . Pour que l’exemple de code s’exécute, vous devez compiler ce code source. Vous pouvez le compiler explicitement et placer l’assembly résultant dans le dossier Bin de votre site web ou dans le global assembly cache. Vous pouvez également placer le code source dans le dossier App_Code de votre site, où il sera compilé dynamiquement au moment de l’exécution. Cet exemple utilise l’approche de compilation dynamique ; il n’existe donc aucun Assembly attribut dans la Register directive pour ce contrôle en haut de la page web. Pour obtenir une procédure pas à pas qui montre comment compiler, consultez Procédure pas à pas : développement et utilisation d’un contrôle de serveur web personnalisé.

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 troisième partie de l’exemple de code est la page Web. La page contient une CatalogZone zone, avec le contrôle personnalisé WebPart déclaré dans la zone, afin qu’un utilisateur puisse l’ajouter à la page au moment de l’exécution. Notez que seuls les contrôles dynamiques (contrôles ajoutés à une page par programmation ou à partir d’un catalogue comme celui-ci) peuvent être supprimés d’une page. Les contrôles statiques (contrôles déclarés dans une WebPartZoneBase zone dans le balisage d’une page) peuvent être fermés, mais jamais supprimés. L’élément <asp:webpartmanager> déclare une valeur personnalisée pour la propriété à l’aide DeleteWarning de l’attribut DeleteWarning . La Button1_Click méthode affecte une autre valeur personnalisée à la DeleteWarning propriété.

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

Après avoir chargé la page dans un navigateur, vous devez ajouter le WebPart contrôle à la page. À l’aide du contrôle de liste déroulante Mode d’affichage , sélectionnez Mode catalogue. Lorsque le catalogue s’affiche, activez la case à cocher en regard du contrôle personnalisé, cliquez sur Ajouter pour l’ajouter à la page, puis cliquez sur Fermer pour renvoyer le mode de navigation de la page. Maintenant que le contrôle est visible, vous pouvez le supprimer. En utilisant à nouveau le contrôle Mode d’affichage , basculez la page en mode création (vous ne pouvez pas supprimer des contrôles lorsque la page est en mode de navigation). Cliquez sur le menu verbes (symbole de flèche) dans l’en-tête du WebPart contrôle, puis sélectionnez Supprimer. L’avertissement que vous définissez sur l’attribut s’affiche DeleteWarning . Cliquez sur Annuler. Cliquez maintenant sur le bouton intitulé Avertissement de suppression de modification, qui modifie la valeur de la propriété par programmation. Dans le menu verbes du contrôle, sélectionnez à nouveau Supprimer et notez que cette fois, l’autre message d’avertissement s’affiche.

Remarques

Lorsqu’un utilisateur supprime un WebPart contrôle, un message d’avertissement par défaut s’affiche normalement. Il avertit l’utilisateur que lorsque cette instance d’un contrôle est supprimée, la suppression est permanente. Le développeur de pages peut fournir aux utilisateurs un moyen d’ajouter une nouvelle instance du contrôle à la page (par exemple, par le biais d’un catalogue de WebPart contrôles ou par certains moyens par programmation), mais l’instance actuelle d’un contrôle supprimé est définitivement supprimée. La boîte de dialogue qui affiche l’avertissement inclut un bouton permettant à l’utilisateur d’annuler la suppression, si vous le souhaitez.

La DeleteWarning propriété permet aux développeurs de définir le message d’avertissement affiché à l’utilisateur.

Si un développeur de pages affecte une valeur de chaîne vide (« ») à cette propriété, aucune boîte de dialogue d’avertissement ne s’affiche lorsqu’un utilisateur supprime un WebPart contrôle.

Notes

La DeleteWarning propriété n’est pas affichée dans le cas de contrôles statiques WebPart et de contrôles serveur. Les contrôles statiques sont des contrôles serveur qui sont déclarés dans une WebPartZoneBase zone dans le balisage d’une page web. Étant donné que ces contrôles sont statiques, ils ne peuvent pas être supprimés. Le message d’avertissement de suppression n’est jamais affiché dans ce cas. Les contrôles statiques peuvent être fermés par un utilisateur, mais un contrôle fermé est ajouté au catalogue de pages, à partir duquel il peut être ajouté à la page par un utilisateur, alors qu’un contrôle supprimé ne peut jamais être récupéré.

S’applique à

Voir aussi