WebPartManager.DeleteWebPart(WebPart) 메서드

정의

웹 페이지에서 컨트롤의 동적 인스턴스를 WebPart 영구적으로 제거합니다.

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)

매개 변수

webPart
WebPart

삭제할 서버 컨트롤입니다.

예제

다음 코드 예제에서는 메서드를 사용 하는 방법을 보여 줍니다 DeleteWebPart . 일정 추가 단추를 처음 클릭하면 이벤트 처리기의 코드가 컨트롤을 Calendar 만들어 영역에 개체로 GenericWebPart 추가합니다. 컨트롤은 프로그래밍 방식으로 추가되므로 동적 컨트롤이므로 삭제할 수 있습니다. 사용자가 일정 삭제 단추를 클릭하면 코드에서 컨트롤이 있는지 확인하고 메서드를 호출 DeleteWebPart 하여 삭제합니다.

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

설명

메서드는 DeleteWebPart 페이지에서 매개 변수가 나타내는 컨트롤을 webPart 영구적으로 제거합니다. 컨트롤에 추가 PageCatalogPart 되고 페이지에 다시 추가할 수 있는 닫힌 컨트롤과 달리 삭제된 컨트롤 인스턴스는 페이지에 다시 추가할 수 없습니다.

메모

웹 파트 컨트롤 집합에서 구현한 대로 사용자가 동적 WebPart 컨트롤을 삭제하는 기능은 사용자 및 컨트롤이 페이지에 추가된 개인 설정 범위에 따라 달라집니다. 페이지가 공유 범위(권한이 있는 사용자)에 있을 때 컨트롤이 추가되면 페이지가 사용자 범위에 있을 때 개별 사용자가 컨트롤을 삭제할 수 없습니다.

동적 컨트롤만 삭제할 수 있습니다. 동적 컨트롤은 프로그래밍 방식으로 또는 사용자가 카탈로그에서 컨트롤을 추가하여 페이지에 추가됩니다. 정적 컨트롤은 태그 또는 지속성 형식으로 선언적으로 페이지에 추가됩니다. 선언적 태그는 태그에 영구적으로 존재하기 때문에 정적 컨트롤은 삭제할 수 없지만 닫히고 다시 열 수 있습니다.

적용 대상

추가 정보