WebPartManager.DeleteWarning Свойство

Определение

Получает или задает пользовательское предупреждение, отображаемое для конечных пользователей, которые удаляют элемент управления.

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

Значение свойства

String

Строка, содержащая текст предупреждения. Значением по умолчанию является локализованное предупреждение.

Примеры

В следующем примере кода показано использование DeleteWarning свойства декларативно и программным способом.

В примере кода есть четыре части:

  • Пользовательский элемент управления, позволяющий изменять режимы отображения страниц.

  • Пользовательский WebPart элемент управления.

  • Веб-страница.

  • Объяснение того, как работает пример в браузере.

Первая часть примера кода — это пользовательский элемент управления для изменения режимов отображения. Исходный код пользовательского элемента управления можно получить из раздела "Пример" в обзоре WebPartManager класса. Дополнительные сведения о режимах отображения и о том, как работает пользовательский элемент управления, см. в пошаговом руководстве: изменение режимов отображения на странице веб-части.

Второй частью примера кода является пользовательский WebPart элемент управления. Для запуска примера кода необходимо скомпилировать этот исходный код. Его можно скомпилировать явным образом и поместить результирующая сборка в папку bin веб-сайта или глобальный кэш сборок. Кроме того, исходный код можно поместить в папку App_Code сайта, где он будет динамически компилироваться во время выполнения. В этом примере используется подход динамической компиляции; Таким образом, в директиве Register этого элемента управления нет Assembly атрибута в верхней части веб-страницы. Пошаговое руководство, демонстрирующее компиляцию, см. в разделе "Пошаговое руководство. Разработка и использование пользовательского веб-сервера".

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

Третья часть примера кода — веб-страница. Страница содержит CatalogZone зону с пользовательским WebPart элементом управления, объявленным в зоне, чтобы пользователь смог добавить его на страницу во время выполнения. Обратите внимание, что с страницы можно удалить только динамические элементы управления (элементы управления, которые добавляются на страницу программным способом или из каталога, подобного этому). Статические элементы управления (элементы управления, объявленные в WebPartZoneBase пределах зоны в разметке страницы), могут быть закрыты, но никогда не удаляются. Элемент <asp:webpartmanager> объявляет пользовательское значение для DeleteWarning свойства с помощью атрибута DeleteWarning . Метод Button1_Click присваивает свойству другое пользовательское DeleteWarning значение.

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

После загрузки страницы в браузере необходимо добавить WebPart элемент управления на страницу. В раскрывающемся списке режима отображения выберите режим каталога. Когда появится каталог, установите флажок рядом с пользовательским элементом управления, нажмите кнопку "Добавить ", чтобы добавить его на страницу, и нажмите кнопку "Закрыть ", чтобы вернуть страницу в режим обзора. Теперь, когда элемент управления виден, его можно удалить. Снова с помощью элемента управления "Режим отображения " переключите страницу в режим конструктора (вы не можете удалить элементы управления, пока страница находится в режиме обзора). Щелкните меню глаголов (символ стрелки) в заголовке WebPart элемента управления и нажмите кнопку "Удалить". Появится предупреждение, заданное для атрибута DeleteWarning . Щелкните Отмена. Теперь нажмите кнопку с меткой " Удалить предупреждение", которое программно изменяет значение свойства. В меню команд в элементе управления нажмите кнопку "Удалить " еще раз и обратите внимание, что на этот раз появится другое предупреждающее сообщение.

Комментарии

Когда пользователь удаляет WebPart элемент управления, обычно отображается предупреждающее сообщение по умолчанию. Он предупреждает пользователя о том, что при удалении этого экземпляра элемента управления удаление является постоянным. Разработчик страницы может предоставить пользователям возможность добавить новый экземпляр элемента управления на страницу (например, через каталог WebPart элементов управления или через некоторые программные средства), но текущий экземпляр элемента управления, который удаляется, окончательно удаляется. Диалоговое окно с предупреждением содержит кнопку для отмены удаления при необходимости.

Свойство DeleteWarning позволяет разработчикам задавать предупреждающее сообщение, отображаемое пользователю.

Если разработчик страницы назначает этому свойству пустое строковое значение (""), диалоговое окно предупреждения не отображается, когда пользователь удаляет WebPart элемент управления.

Примечание

Свойство DeleteWarning не отображается в случае статических WebPart элементов управления и серверных элементов управления. Статические элементы управления — это серверные элементы управления, объявленные в WebPartZoneBase пределах зоны в разметке веб-страницы. Так как такие элементы управления являются статическими, их нельзя удалить, поэтому в этом случае никогда не отображается предупреждающее сообщение об удалении. Статические элементы управления могут быть закрыты пользователем, но закрытый элемент управления добавляется в каталог страниц, из которого его можно добавить обратно на страницу пользователем, в то время как удаленный элемент управления никогда не может быть восстановлен.

Применяется к

См. также раздел