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