Sdílet prostřednictvím


WebPartManager.DeleteWebPart(WebPart) Metoda

Definice

Trvale odebere dynamickou WebPart instanci ovládacího prvku z webové stránky.

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)

Parametry

webPart
WebPart

Serverový ovládací prvek, který se má odstranit.

Příklady

Následující příklad kódu ukazuje, jak použít metodu DeleteWebPart . Při prvním kliknutí na tlačítko Přidat kalendář vytvoří kód v obslužné rutině události ovládací prvek Calendar a přidá ho do zóny jako GenericWebPart objekt. Protože se ovládací prvek přidává programově, jedná se o dynamický ovládací prvek, a proto ho můžete odstranit. Když uživatel klikne na tlačítko Odstranit kalendář , kód zajistí, že ovládací prvek existuje, a pak ho DeleteWebPart odstraní voláním metody .

<%@ 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>

Poznámky

Metoda DeleteWebPart trvale odebere ovládací prvek reprezentovaný webPart parametrem ze stránky. Na rozdíl od uzavřeného ovládacího prvku, který je přidán do PageCatalogPart ovládacího prvku a lze ho přidat zpět na stránku, nelze odstraněnou instanci ovládacího prvku nikdy přidat zpět na stránku.

Poznámka

Jak je implementováno sadou ovládacích prvků webových částí, schopnost uživatelů odstranit dynamický WebPart ovládací prvek závisí na uživateli a rozsahu přizpůsobení, ve kterém byl ovládací prvek přidán na stránku. Pokud je ovládací prvek přidán, když je stránka ve sdíleném oboru (uživatelem, který má oprávnění), nemůžou ovládací prvek odstranit jednotliví uživatelé, pokud je stránka v oboru uživatele.

Odstranit lze pouze dynamické ovládací prvky. Dynamické ovládací prvky se přidávají na stránku programově nebo tak, že uživatelé přidávají ovládací prvky z katalogu. Statické ovládací prvky jsou přidány na stránku deklarativně ve formátu značek nebo trvalosti. Vzhledem k tomu, že deklarativní značky jsou ve značkách trvale přítomny, statické ovládací prvky nelze nikdy odstranit, ale lze je zavřít a znovu otevřít.

Platí pro

Viz také