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