WebPartManager.DeleteWarning Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define uma mensagem de aviso personalizada para os utilizadores finais quando eliminam um controlo.
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 Propriedade
Uma cadeia que contém o texto da mensagem de aviso. O valor padrão é uma mensagem de aviso localizada.
Exemplos
O seguinte exemplo de código demonstra o uso da DeleteWarning propriedade de forma declarativa e programatica.
Existem quatro partes no exemplo de código:
Um controlo do utilizador que permite alterar os modos de visualização da página.
Um controlo personalizado WebPart .
Uma página web.
Uma explicação de como o exemplo funciona num navegador.
A primeira parte do exemplo de código é o controlo do utilizador para alterar os modos de visualização. Pode obter o código-fonte do controlo de utilizador a partir da secção Exemplo da WebPartManager visão geral da classe. Para mais informações sobre modos de visualização e como funciona o controlo do utilizador, consulte Walkthrough: Changing Display Modes on a Web Parts Page.
A segunda parte do exemplo do código é o controlo personalizado WebPart . Para que o exemplo de código seja executado, tens de compilar este código-fonte. Pode compilar explicitamente e colocar o assembly resultante na pasta Bin do seu site ou na cache global assembly. Alternativamente, pode colocar o código-fonte na pasta App_Code do seu site, onde será compilado dinamicamente em tempo de execução. Este exemplo utiliza a abordagem de compilação dinâmica; assim, não Assembly existe qualquer atributo na Register diretiva para este controlo no topo da página Web. Para um guia que demonstra como compilar, consulte Guia: Desenvolvimento e Utilização de um Controlo 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
A terceira parte do exemplo do código é a página Web. A página contém uma CatalogZone zona, com o controlo personalizado WebPart declarado na zona, para que o utilizador possa adicioná-la à página em tempo de execução. Note que apenas os controlos dinâmicos (controlos que são adicionados a uma página programaticamente ou a partir de um catálogo como este) podem ser eliminados de uma página. Os controlos estáticos (controlos declarados dentro de uma WebPartZoneBase zona na marcação de uma página) podem ser fechados, mas nunca eliminados. O <asp:webpartmanager> elemento declara um valor personalizado para a DeleteWarning propriedade usando o DeleteWarning atributo. O Button1_Click método atribui outro valor personalizado à DeleteWarning propriedade.
<%@ 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>
Depois de carregares a página num navegador, tens de adicionar o WebPart controlo à página. Usando o controlo de lista suspensa do Modo de Exibição , selecione modo catálogo. Quando o catálogo aparecer, selecione a caixa de seleção ao lado do controlo personalizado, clique em Adicionar para adicionar à página e depois clique em Fechar para voltar a página ao modo de navegação. Agora que o controlo está visível, podes apagá-lo. Usando novamente o controlo do Modo de Exibição , mude a página para o modo de design (não pode apagar os controlos enquanto a página está em modo de navegação). Clique no menu verbos (o símbolo da seta) no cabeçalho do WebPart controlo e selecione Eliminar. O aviso que definiste no DeleteWarning atributo aparece. Clique em Cancelar. Agora clique no botão chamado Aviso de Alterar Eliminação, que altera o valor da propriedade de forma programática. No menu de verbos no controlo, selecione Apagar novamente e repare que desta vez aparece a outra mensagem de aviso.
Observações
Quando um utilizador elimina um WebPart controlo, normalmente é exibida uma mensagem de aviso por defeito. Avisa o utilizador que, quando esta instância de um controlo é eliminada, a eliminação é permanente. O programador da página pode fornecer aos utilizadores uma forma de adicionar uma nova instância do controlo à página (como através de um catálogo de WebPart controlos, ou por meios programáticos), mas a instância atual de um controlo eliminado é removida permanentemente. A caixa de diálogo que mostra o aviso inclui um botão para o utilizador cancelar a eliminação, se desejar.
A DeleteWarning propriedade permite aos promotores definir a mensagem de aviso que é apresentada ao utilizador.
Se um programador de páginas atribuir uma string ("") vazia a esta propriedade, não será apresentada nenhuma caixa de diálogo de mensagem de aviso quando um utilizador elimina um WebPart controlo.
Note
A DeleteWarning propriedade não é apresentada no caso de controlos estáticos WebPart e controlos de servidor. Os controlos estáticos são controlos de servidor que são declarados dentro de uma WebPartZoneBase zona na marcação de uma página Web. Como tais controlos são estáticos, não podem ser eliminados, pelo que a mensagem de aviso de eliminação nunca é exibida nesse caso. Controlos estáticos podem ser fechados pelo utilizador, mas um controlo fechado é adicionado ao catálogo de páginas, a partir do qual pode ser adicionado de volta à página pelo utilizador, enquanto um controlo eliminado nunca pode ser recuperado.