Freigeben über


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 zum ersten Mal auf die Schaltfläche Kalender hinzufügen geklickt wird, erstellt der Code im Ereignishandler ein Calendar Steuerelement und fügt es einer Zone als Objekt hinzu GenericWebPart . Da das Steuerelement programmgesteuert hinzugefügt wird, handelt es sich um ein dynamisches Steuerelement, das daher gelöscht werden kann. Wenn ein Benutzer auf die Schaltfläche Kalender löschen klickt, stellt der Code sicher, dass das Steuerelement vorhanden ist, und löscht es 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 dauerhaft von einer Seite. Im Gegensatz zu einem geschlossenen Steuerelement, das dem PageCatalogPart Steuerelement hinzugefügt wird und der Seite wieder hinzugefügt werden kann, kann eine gelöschte Steuerelementinstanz nie wieder der Seite hinzugefügt werden.

Hinweis

Wie vom Webparts-Steuerelementsatz implementiert, hängt die Möglichkeit für Benutzer, ein dynamisches WebPart Steuerelement zu löschen, 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 oder durch Benutzer hinzugefügt, 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, aber geschlossen und erneut geöffnet werden.

Gilt für:

Weitere Informationen