WebPartManager.DeleteWarning Egenskap

Definition

Hämtar eller anger ett anpassat varningsmeddelande som visas för slutanvändare när de tar bort en kontroll.

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

Egenskapsvärde

En sträng som innehåller texten i varningsmeddelandet. Standardvärdet är ett lokaliserat varningsmeddelande.

Exempel

Följande kodexempel visar användningen av DeleteWarning egenskapen deklarativt och programmatiskt.

Kodexemplet har fyra delar:

  • En användarkontroll som gör att du kan ändra sidvisningslägen.

  • En anpassad WebPart kontroll.

  • En webbsida.

  • En förklaring av hur exemplet fungerar i en webbläsare.

Den första delen av kodexemplet är användarkontrollen för att ändra visningslägen. Du kan hämta källkoden för användarkontrollen från avsnittet Exempel i klassöversikten WebPartManager . Mer information om visningslägen och hur användarkontrollen fungerar finns i Genomgång: Ändra visningslägen på en webbsida.

Den andra delen av kodexemplet är den anpassade WebPart kontrollen. För att kodexemplet ska köras måste du kompilera den här källkoden. Du kan kompilera den explicit och placera den resulterande sammansättningen i webbplatsens bin-mapp eller den globala sammansättningscacheminnet. Du kan också placera källkoden i webbplatsens App_Code mapp, där den kompileras dynamiskt vid körning. I det här exemplet används metoden för dynamisk kompilering. därför finns det inget Assembly attribut i direktivet för den Register här kontrollen överst på webbsidan. En genomgång som visar hur du kompilerar finns i Genomgång: Utveckla och använda en anpassad webbserverkontroll.

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

Den tredje delen av kodexemplet är webbsidan. Sidan innehåller en CatalogZone zon med den anpassade WebPart kontrollen deklarerad i zonen, så att en användare kan lägga till den på sidan vid körning. Observera att endast dynamiska kontroller (kontroller som läggs till på en sida programmässigt eller från en katalog som den här) kan tas bort från en sida. Statiska kontroller (kontroller som deklareras i en WebPartZoneBase zon i markering av en sida) kan stängas, men aldrig tas bort. Elementet <asp:webpartmanager> deklarerar ett anpassat värde för DeleteWarning egenskapen med hjälp av attributet DeleteWarning . Metoden Button1_Click tilldelar egenskapen ett annat anpassat värde 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>

När du har läst in sidan i en webbläsare måste du lägga WebPart till kontrollen på sidan. Med listrutan Visningsläge väljer du katalogläge. När katalogen visas markerar du kryssrutan bredvid den anpassade kontrollen, klickar på Lägg till för att lägga till den på sidan och klickar sedan på Stäng för att returnera sidan för att bläddra. Nu när kontrollen är synlig kan du ta bort den. Använd kontrollen Visningsläge igen och växla sidan till designläge (du kan inte ta bort kontroller när sidan är i b bläddra-läge). Klicka på verbmenyn (pilsymbolen) i kontrollens WebPart rubrik och välj Ta bort. Varningen som du anger för DeleteWarning attributet visas. Klicka på Avbryt. Klicka nu på knappen Ändra borttagningsvarning, som ändrar egenskapsvärdet programmatiskt. I verbmenyn på kontrollen väljer du Ta bort igen och märker att den här gången visas det andra varningsmeddelandet.

Kommentarer

När en användare tar bort en WebPart kontroll visas normalt ett standardvarningsmeddelande. Den varnar användaren om att borttagningen är permanent när den här instansen av en kontroll tas bort. Sidutvecklaren kan ge användarna ett sätt att lägga till en ny instans av kontrollen på sidan (till exempel via en katalog med WebPart kontroller eller via vissa programmatiska metoder), men den aktuella instansen av en kontroll som tas bort tas bort permanent. Dialogrutan som visar varningen innehåller en knapp där användaren kan avbryta borttagningen om så önskas.

Egenskapen DeleteWarning gör det möjligt för utvecklare att ange varningsmeddelandet som visas för användaren.

Om en sidutvecklare tilldelar en tom sträng ("") värde till den här egenskapen visas ingen varningsdialogruta när en användare tar bort en WebPart kontroll.

Note

Egenskapen DeleteWarning visas inte när det gäller statiska WebPart kontroller och serverkontroller. Statiska kontroller är serverkontroller som deklareras i en WebPartZoneBase zon i markering av en webbsida. Eftersom sådana kontroller är statiska kan de inte tas bort, så varningsmeddelandet om borttagning visas aldrig i så fall. Statiska kontroller kan stängas av en användare, men en stängd kontroll läggs till i sidkatalogen, från vilken den kan läggas tillbaka till sidan av en användare, medan en borttagen kontroll aldrig kan återställas.

Gäller för

Se även