Partilhar via


WebPartManager.DeleteWarning Propriedade

Definição

Obtém ou define uma mensagem de aviso personalizada exibida aos usuários finais quando eles excluem um controle.

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 da propriedade

Uma cadeia de caracteres que contém o texto da mensagem de aviso. O valor padrão é uma mensagem de aviso localizada.

Exemplos

O exemplo de código a seguir demonstra o uso da propriedade declarativamente DeleteWarning e programaticamente.

Há quatro partes no exemplo de código:

  • Um controle de usuário que permite alterar os modos de exibição de página.

  • Um controle personalizado WebPart .

  • Uma página da Web.

  • Uma explicação de como o exemplo funciona em um navegador.

A primeira parte do exemplo de código é o controle de usuário para alterar os modos de exibição. Você pode obter o código-fonte para o controle do usuário na seção Exemplo da visão geral da WebPartManager classe. Para obter mais informações sobre modos de exibição e como o controle de usuário funciona, consulte Passo a passo: alterando modos de exibição em uma página de Web Parts.

A segunda parte do exemplo de código é o controle personalizado WebPart . Para que o exemplo de código seja executado, você deve compilar esse código-fonte. Você pode compilá-lo explicitamente e colocar o assembly resultante na pasta Bin do seu site ou no cache de assembly global. Como alternativa, você pode colocar o código-fonte na pasta App_Code do site, em que ele será compilado dinamicamente em tempo de execução. Este exemplo usa a abordagem de compilação dinâmica; portanto, não há nenhum Assembly atributo na Register diretiva para esse controle na parte superior da página da Web. Para obter um passo a passo que demonstra como compilar, consulte Passo a passo : Desenvolvendo e usando um controle 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 de código é a página da Web. A página contém uma CatalogZone zona, com o controle personalizado WebPart declarado na zona, para que um usuário possa adicioná-la à página em tempo de execução. Observe que somente controles dinâmicos (controles adicionados a uma página programaticamente ou de um catálogo como este) podem ser excluídos de uma página. Controles estáticos (controles declarados dentro de uma WebPartZoneBase zona na marcação de uma página) podem ser fechados, mas nunca excluídos. 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 carregar a página em um navegador, você precisa adicionar o WebPart controle à página. Usando o controle de lista suspensa Modo de Exibição , selecione o modo de catálogo. Quando o catálogo for exibido, marque a caixa de seleção ao lado do controle personalizado, clique em Adicionar para adicioná-lo à página e clique em Fechar para retornar a página para o modo de navegação. Agora que o controle está visível, você pode excluí-lo. Usando o controle Modo de Exibição novamente, alterne a página para o modo de design (você não pode excluir controles enquanto a página estiver no modo de navegação). Clique no menu de verbos (o símbolo de seta) no cabeçalho do WebPart controle e selecione Excluir. O aviso definido no DeleteWarning atributo é exibido. Clique em Cancelar. Agora, clique no botão rotulado Alterar Aviso de Exclusão, que altera o valor da propriedade programaticamente. No menu de verbos no controle, selecione Excluir novamente e observe que desta vez a outra mensagem de aviso será exibida.

Comentários

Quando um usuário exclui um WebPart controle, normalmente uma mensagem de aviso padrão é exibida. Ele avisa o usuário que, quando essa instância de um controle é excluída, a exclusão é permanente. O desenvolvedor de páginas pode fornecer aos usuários uma maneira de adicionar uma nova instância do controle à página (como por meio de um catálogo de controles ou por meio de WebPart alguns meios programáticos), mas a instância atual de um controle excluído é permanentemente removida. A caixa de diálogo que exibe o aviso inclui um botão para o usuário cancelar a exclusão, se desejado.

A DeleteWarning propriedade permite que os desenvolvedores definam a mensagem de aviso exibida para o usuário.

Se um desenvolvedor de página atribuir um valor de cadeia de caracteres vazia ("") a essa propriedade, nenhuma caixa de diálogo de mensagem de aviso será mostrada quando um usuário excluir um WebPart controle.

Observação

A DeleteWarning propriedade não é exibida no caso de controles estáticos WebPart e controles de servidor. Controles estáticos são controles de servidor declarados dentro de uma WebPartZoneBase zona na marcação de uma página da Web. Como esses controles são estáticos, eles não podem ser excluídos, portanto, a mensagem de aviso de exclusão nunca é exibida nesse caso. Controles estáticos podem ser fechados por um usuário, mas um controle fechado é adicionado ao catálogo de páginas, do qual ele pode ser adicionado de volta à página por um usuário, enquanto um controle excluído nunca pode ser recuperado.

Aplica-se a

Confira também