다음을 통해 공유


WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) 메서드

정의

WebPart 또는 서버 컨트롤을 한 WebPartZoneBase 영역에서 다른 영역이나 동일한 영역 내의 새 위치로 이동합니다.

public:
 virtual void MoveWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public virtual void MoveWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
abstract member MoveWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> unit
override this.MoveWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> unit
Public Overridable Sub MoveWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer)

매개 변수

webPart
WebPart

이동할 WebPart 또는 다른 서버 컨트롤입니다.

zone
WebPartZoneBase

webPart가 이동될 대상 WebPartZoneBase입니다.

zoneIndex
Int32

webPart 내의 다른 컨트롤에 상대적인 zone의 인덱스를 나타내는 정수입니다.

예외

webPartControls 컨트롤의 WebPartManager 컬렉션에 없는 경우

또는

zoneZones 컨트롤의 WebPartManager 컬렉션에 없는 경우

또는

webPart 컨트롤의 Zone 속성이 참조하는 영역이 null인 경우, 즉 webPart가 현재 영역에 없는 경우

webPart 또는 zonenull인 경우

zoneIndex가 0보다 작은 경우

예제

다음 코드 예제를 호출 MoveWebPart 하는 방법에 설명 합니다 메서드를 직접 코드에서 한 영역에서 다른 영역으로 컨트롤을 WebPart 이동 합니다.

이 코드 예제는 세 부분으로 구성 합니다.

  • 디스플레이 모드를 변경하기 위한 사용자 컨트롤입니다.

  • 컨트롤을 호스트할 웹 페이지입니다.

  • 코드 예제를 실행하는 방법에 대한 설명입니다.

코드 예제의 첫 번째 부분은 디스플레이 모드를 변경하기 위한 사용자 컨트롤입니다. 클래스 개요의 예제 섹션에서 사용자 컨트롤에 WebPartManager 대한 소스 코드를 가져올 수 있습니다. 디스플레이 모드 및 사용자 컨트롤의 작동 방식에 대한 자세한 내용은 연습: 웹 파트 페이지에서 디스플레이 모드 변경을 참조하세요.

예제의 두 번째 부분은 각각 두 개의 서버 컨트롤을 포함하는 두 개의 영역을 포함하는 웹 페이지입니다. 사용자가 페이지에서 WebPart 이동 단추를 클릭하면 메서드의 Button1_Click 코드는 컨트롤을 첫 번째 영역에서 두 번째 영역의 새 위치로 이동합니다. 코드는 먼저 메서드를 GetGenericWebPart 호출하여 컨트롤을 래핑하는 개체를 GenericWebPartlist1 검색해야 합니다. 메서드의 첫 번째 매개 변수에는 컨트롤 list1MoveWebPart 필요하지만 WebPart ASP.NET 서버 컨트롤이 필요하기 때문에 필요합니다.

<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1" 
    TagName="DisplayModeMenuCS"
    Src="~/displaymodemenucs.ascx" %>

<!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 Button1_Click(object sender, EventArgs e)
  {
    GenericWebPart part = mgr1.GetGenericWebPart(list1);
    mgr1.MoveWebPart(part, zone2, zone2.WebParts.Count - 1);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <uc1:DisplayModeMenuCS ID="menu1" runat="server" />
      <asp:WebPartZone ID="zone1" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label1" runat="server" 
            Text="My Navigation" 
            Title="Zone 1 Label"/>
          <asp:BulletedList 
            ID="list1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links"
            AuthorizationFilter="admin">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>        
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:WebPartZone ID="zone2" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label2" runat="server" 
            Text="My Data" 
            Title="Zone 2 Label"/>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar"/>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Move WebPart" 
        OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register TagPrefix="uc1" 
    TagName="DisplayModeMenuVB"
    Src="~/displaymodemenuvb.ascx" %>

<!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 Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)

    Dim part As GenericWebPart = mgr1.GetGenericWebPart(list1)
    mgr1.MoveWebPart(part, zone2, zone2.WebParts.Count - 1)
    
  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">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <uc1:DisplayModeMenuVB ID="menu1" runat="server" />
      <asp:WebPartZone ID="zone1" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label1" runat="server" 
            Text="My Navigation" 
            Title="Zone 1 Label"/>
          <asp:BulletedList 
            ID="list1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links"
            AuthorizationFilter="admin">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>        
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:WebPartZone ID="zone2" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label2" runat="server" 
            Text="My Data" 
            Title="Zone 2 Label"/>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar"/>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Move WebPart" 
        OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>

페이지가 로드된 후 웹 파트 이동 단추를 클릭하고 링크가 포함된 컨트롤이 두 번째 영역의 중간 위치로 이동합니다. 이 컨트롤의 이동은 메서드를 호출하여 프로그래밍 방식으로 수행됩니다 MoveWebPart . 디스플레이 모드 드롭다운 목록 컨트롤을 사용하여 페이지를 디자인 모드로 전환할 수도 있으며 디자인 모드에서는 컨트롤을 영역 내의 다른 영역이나 다른 위치로 끌 수 있습니다. 메서드는 MoveWebPart 이러한 사용자 시작 이동을 처리 하기 위해 컨트롤에 의해 WebPartManager 호출 합니다.

설명

컨트롤은 WebPartManager 메서드를 MoveWebPart 사용하여 동일한 영역 또는 다른 영역의 새 위치로 이동합니다 webPart . 코드에서 직접 이 메서드를 호출할 수 있으며 사용자가 웹 파트 UI(사용자 인터페이스)의 다양한 옵션을 사용하여 컨트롤을 새 위치로 이동할 때도 호출됩니다.

이동하려면 먼저 여러 조건을 충족 webPart 해야 하며, 이러한 조건의 대부분은 이 항목의 예외 섹션에 나열된 항목으로 표시됩니다. 가 시작할 영역에 포함되지 WebPartZoneBase 않은 경우 webPart 영역으로 이동할 수 없습니다.

조건이 충족되면 다음 일련의 작업을 수행하여 을 이동합니다 webPart.

  1. OnWebPartMoving 메서드는 WebPartMoving 이벤트를 발생시킵니다.

  2. webPart 는 현재 영역에서 제거되고(필요한 경우) 현재 영역 내의 새 영역 또는 새 위치에 추가됩니다.

  3. OnWebPartMoved 메서드는 WebPartMoved 이벤트를 발생시킵니다.

  4. zoneIndex 원본 영역과 대상 영역 모두에 있는 모든 WebPart 컨트롤의 은 이동된 컨트롤을 반영하도록 다시 설정됩니다.

적용 대상

추가 정보