WebPartManager.DeleteWarning Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é.