WebPartManager.DeleteWebPart(WebPart) Methode

Definition

Löscht eine dynamische Instanz eines WebPart-Steuerelements unwiderruflich von einer Webseite.

public:
 void DeleteWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public void DeleteWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart);
member this.DeleteWebPart : System.Web.UI.WebControls.WebParts.WebPart -> unit
Public Sub DeleteWebPart (webPart As WebPart)

Parameter

webPart
WebPart

Das zu löschende Serversteuerelement.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die DeleteWebPart-Methode verwenden. Wenn die Schaltfläche "Kalender hinzufügen " zum ersten Mal geklickt wird, erstellt der Code im Ereignishandler ein Calendar Steuerelement, und fügt es einer Zone als GenericWebPart Objekt hinzu. Da das Steuerelement programmgesteuert hinzugefügt wird, handelt es sich um ein dynamisches Steuerelement und daher kann es gelöscht werden. Wenn ein Benutzer auf die Schaltfläche "Kalender löschen " klickt, stellt der Code sicher, dass das Steuerelement vorhanden ist, und löscht ihn dann durch Aufrufen der DeleteWebPart Methode.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Button2_Click(object sender, EventArgs e)
  {
    WebPartManager mgr = WebPartManager1;
    Calendar cal = new Calendar();
    cal.ID = "cal1";
    GenericWebPart calWebPart = mgr.CreateWebPart(cal);
    mgr.AddWebPart(calWebPart, WebPartZone1, 1);
  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    if (WebPartZone1.WebParts.Count > 1)
    {
      WebPart cal = WebPartZone1.WebParts[1];
      if (cal.Controls[0].GetType().Name == "Calendar" 
        && cal != null)
        WebPartManager1.DeleteWebPart(cal);
    }

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Adding a Server Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList  
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    Dim mgr As WebPartManager = WebPartManager1
    Dim cal As New Calendar()
    cal.ID = "cal1"
    Dim calWebPart As GenericWebPart = mgr.CreateWebPart(cal)
    mgr.AddWebPart(calWebPart, WebPartZone1, 1)
  End Sub

  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)

    If WebPartZone1.WebParts.Count > 1 Then
      Dim cal As WebPart = WebPartZone1.WebParts(1)
      If cal.Controls(0).GetType().Name = "Calendar" AndAlso _
        cal IsNot Nothing Then
        WebPartManager1.DeleteWebPart(cal)
      End If
    End If
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Adding a Server Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList  
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />
    </div>
    </form>
</body>
</html>

Hinweise

Die DeleteWebPart Methode entfernt das Durch den webPart Parameter dargestellte Steuerelement endgültig aus einer Seite. Im Gegensatz zu einem geschlossenen Steuerelement, das dem PageCatalogPart Steuerelement hinzugefügt und wieder zur Seite hinzugefügt werden kann, kann eine gelöschte Steuerelementinstanz niemals wieder zur Seite hinzugefügt werden.

Hinweis

Wie durch den Webparts Steuerelementsatz implementiert, hängt die Möglichkeit zum Löschen eines dynamischen WebPart Steuerelements vom Benutzer und dem Personalisierungsbereich ab, in dem das Steuerelement einer Seite hinzugefügt wurde. Wenn das Steuerelement hinzugefügt wird, wenn sich die Seite im freigegebenen Bereich befindet (von einem Benutzer mit Berechtigungen), kann das Steuerelement nicht von einzelnen Benutzern gelöscht werden, wenn sich die Seite im Benutzerbereich befindet.

Nur dynamische Steuerelemente können gelöscht werden. Dynamische Steuerelemente werden einer Seite programmgesteuert hinzugefügt oder benutzer, die Steuerelemente aus einem Katalog hinzufügen. Statische Steuerelemente werden einer Seite deklarativ im Markup- oder Persistenzformat hinzugefügt. Da die deklarativen Tags dauerhaft im Markup vorhanden sind, können statische Steuerelemente nie gelöscht werden, aber sie können geschlossen und erneut geöffnet werden.

Gilt für

Siehe auch