Поделиться через


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

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

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

Примеры

В следующем примере кода показано использование 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

Третья часть примера кода — веб-страница. Страница содержит зону с пользовательским WebPart элементом CatalogZone управления, объявленным в зоне, чтобы пользователь смог добавить его на страницу во время выполнения. Обратите внимание, что со страницы можно удалить только динамические элементы управления (элементы управления, которые добавляются на страницу программными средствами или из такого каталога, как этот). Статические элементы управления (элементы управления, объявленные в 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 пределах зоны в разметке веб-страницы. Поскольку такие элементы управления являются статическими, их нельзя удалить, поэтому в этом случае предупреждение об удалении не отображается. Статические элементы управления могут быть закрыты пользователем, но закрытый элемент управления добавляется в каталог страниц, из которого пользователь может добавить его обратно на страницу, тогда как удаленный элемент управления никогда не может быть восстановлен.

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

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