WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) メソッド

定義

1 つの 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 の相対インデックスを示す整数。

例外

webPart が、Controls コントロールの WebPartManager コレクションに格納されていません。

- または -

zone が、Zones コントロールの WebPartManager コレクションに格納されていません。

- または -

webPart コントロールの Zone プロパティで参照されるゾーンが null です。つまり、現在 webPart がゾーン内にありません。

webPart または zonenull です。

zoneIndex が 0 未満です。

次のコード例では、 メソッドをコードから直接呼び出 MoveWebPart して、あるゾーンから別のゾーンにコントロールを WebPart 移動する方法を示します。

このコード例には、次の 3 つの部分があります。

  • 表示モードを変更するためのユーザー コントロール。

  • コントロールをホストする Web ページ。

  • コード例を実行する方法の説明。

コード例の最初の部分は、表示モードを変更するためのユーザー コントロールです。 ユーザー コントロールのソース コードは、クラスの概要の「例」セクション WebPartManager から取得できます。 表示モードとユーザー コントロールの動作の詳細については、「 チュートリアル: Web パーツ ページでの表示モードの変更」を参照してください。

この例の 2 番目の部分は、2 つのゾーンを含む Web ページであり、それぞれに 2 つのサーバー コントロールが含まれています。 ユーザーがページの [ WebPart の移動 ] ボタンをクリックすると、 メソッドのコードは Button1_Click 、コントロールを最初のゾーンから 2 番目のゾーンの新しい位置に移動します。 コードは、最初に メソッドを呼び出して、コントロールを GetGenericWebPart ラップするオブジェクトを GenericWebPart 取得する list1 必要があることに注意してください。 これは、メソッドの最初の MoveWebPart パラメーターにはコントロールが必要 WebPart ですが、 list1 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>

ページが読み込まれたら、[ WebPart の移動 ] ボタンをクリックし、リンクを含むコントロールが 2 番目のゾーンの中央の位置に移動します。 このコントロールの移動は、 メソッドを呼び出 MoveWebPart すことによってプログラムによって実行されます。 [ 表示モード ] ドロップダウン リスト コントロールを使用してページをデザイン モードに切り替え、デザイン モードでは、コントロールを異なるゾーンまたはゾーン内の異なる位置にドラッグすることもできます。 メソッドは MoveWebPart 、このようなユーザーが開始した移動を WebPartManager 処理するために、 コントロールによっても呼び出されます。

注釈

コントロールは WebPartManager 、 メソッドを MoveWebPart 使用して、同じゾーン内または別のゾーン内の新しい場所に移動 webPart します。 このメソッドはコードから直接呼び出すことができます。また、Web パーツ ユーザー インターフェイス (UI) のさまざまなオプションを使用して、ユーザーがコントロールを新しい位置に移動したときにも呼び出されます。

移動するには、いくつかの条件が満た webPart されている必要があります。そのほとんどは、このトピックの「例外」セクションに記載されている項目によって示されます。 で始まるゾーンにが含まれていないWebPartZoneBase場合webPartは、ゾーンに移動できません。

条件が満たされると、 を移動 webPartするために次の一連のアクションが発生します。

  1. OnWebPartMoving メソッドは、WebPartMoving イベントを発生させます。

  2. webPart は現在のゾーンから削除され (必要な場合)、新しいゾーンまたは現在のゾーン内の新しい位置に追加されます。

  3. OnWebPartMoved メソッドは、WebPartMoved イベントを発生させます。

  4. zoneIndexWebPart移動元ゾーンと移動先ゾーンの両方のすべてのコントロールの が、移動されたコントロールを反映するようにリセットされます。

適用対象

こちらもご覧ください