WebPartManager.DeleteWarning Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un mensaje de advertencia personalizado que se muestra a los usuarios finales cuando eliminan un control.
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
Valor de propiedad
Cadena que contiene el texto del mensaje de advertencia. El valor predeterminado es un mensaje de advertencia adaptado.
Ejemplos
En el ejemplo de código siguiente se muestra el uso de la DeleteWarning propiedad mediante declaración y mediante programación.
Hay cuatro partes en el ejemplo de código:
Control de usuario que permite cambiar los modos de visualización de página.
Un control personalizado WebPart .
Una página web.
Explicación de cómo funciona el ejemplo en un explorador.
La primera parte del ejemplo de código es el control de usuario para cambiar los modos de visualización. Puede obtener el código fuente del control de usuario en la sección Ejemplo de la información general de la WebPartManager clase. Para obtener más información sobre los modos de visualización y cómo funciona el control de usuario, vea Tutorial: Cambiar modos de presentación en una página de elementos web.
La segunda parte del ejemplo de código es el control personalizado WebPart . Para que se ejecute el ejemplo de código, debe compilar este código fuente. Puede compilarlo explícitamente y colocar el ensamblado resultante en la carpeta Bin del sitio web o en la caché global de ensamblados. Como alternativa, puede colocar el código fuente en la carpeta App_Code del sitio, donde se compilará dinámicamente en tiempo de ejecución. En este ejemplo se usa el enfoque de compilación dinámica; por lo tanto, no hay ningún Assembly
atributo en la Register
directiva para este control en la parte superior de la página web. Para ver un tutorial que muestra cómo compilar, consulte Tutorial: Desarrollo y uso de un control de servidor web personalizado.
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 tercera parte del ejemplo de código es la página web. La página contiene una CatalogZone zona, con el control personalizado WebPart declarado en la zona, para que un usuario pueda agregarlo a la página en tiempo de ejecución. Tenga en cuenta que solo los controles dinámicos (controles que se agregan a una página mediante programación o desde un catálogo como este) se pueden eliminar de una página. Los controles estáticos (controles declarados dentro de una WebPartZoneBase zona en el marcado de una página) se pueden cerrar, pero nunca se pueden eliminar. El <asp:webpartmanager>
elemento declara un valor personalizado para la DeleteWarning propiedad mediante el DeleteWarning
atributo . El Button1_Click
método asigna otro valor personalizado a la DeleteWarning propiedad .
<%@ 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>
Después de cargar la página en un explorador, debe agregar el WebPart control a la página. Con el control de lista desplegable Modo de visualización, seleccione el modo de catálogo. Cuando aparezca el catálogo, active la casilla situada junto al control personalizado, haga clic en Agregar para agregarlo a la página y, a continuación, haga clic en Cerrar para devolver la página al modo de exploración. Ahora que el control está visible, puede eliminarlo. Con el control Modo de presentación de nuevo, cambie la página al modo de diseño (no puede eliminar controles mientras la página está en modo de exploración). Haga clic en el menú verbos (el símbolo de flecha) en el encabezado del WebPart control y seleccione Eliminar. Aparece la advertencia establecida en el DeleteWarning
atributo . Haga clic en Cancelar. Ahora haga clic en el botón con la etiqueta Cambiar advertencia de eliminación, que cambia el valor de la propiedad mediante programación. En el menú verbos del control, seleccione Eliminar de nuevo y observe que esta vez aparece el otro mensaje de advertencia.
Comentarios
Cuando un usuario elimina un WebPart control, normalmente se muestra un mensaje de advertencia predeterminado. Advierte al usuario de que, cuando se elimina esta instancia de un control, la eliminación es permanente. El desarrollador de páginas puede proporcionar a los usuarios una manera de agregar una nueva instancia del control a la página (por ejemplo, a través de un catálogo de controles o a través de WebPart algunos medios mediante programación), pero la instancia actual de un control que se elimina permanentemente. El cuadro de diálogo que muestra la advertencia incluye un botón para que el usuario cancele la eliminación, si lo desea.
La DeleteWarning propiedad permite a los desarrolladores establecer el mensaje de advertencia que se muestra al usuario.
Si un desarrollador de páginas asigna un valor de cadena vacía ("") a esta propiedad, no se mostrará ningún cuadro de diálogo de mensaje de advertencia cuando un usuario elimine un WebPart control.
Nota
La DeleteWarning propiedad no se muestra en el caso de controles estáticos WebPart y controles de servidor. Los controles estáticos son controles de servidor que se declaran dentro de una WebPartZoneBase zona en el marcado de una página web. Dado que estos controles son estáticos, no se pueden eliminar, por lo que el mensaje de advertencia de eliminación nunca se muestra en ese caso. Un usuario puede cerrar controles estáticos, pero un control cerrado se agrega al catálogo de páginas, desde el que un usuario puede volver a agregarlo a la página, mientras que un control eliminado nunca se puede recuperar.