WebPartManager.MoveWebPart メソッド
アセンブリ: System.Web (system.web.dll 内)

Public Overridable Sub MoveWebPart ( _ webPart As WebPart, _ zone As WebPartZoneBase, _ zoneIndex As Integer _ )
Dim instance As WebPartManager Dim webPart As WebPart Dim zone As WebPartZoneBase Dim zoneIndex As Integer instance.MoveWebPart(webPart, zone, zoneIndex)

例外の種類 | 条件 |
---|---|
ArgumentException | webPart が、WebPartManager コントロールの Controls コレクションに格納されていません。 または zone が、WebPartManager コントロールの Zones コレクションに格納されていません。 または webPart コントロールの Zone プロパティで参照されるゾーンが null 参照 (Visual Basic では Nothing) です。つまり、現在 webPart がゾーン内にありません。 |
ArgumentNullException | webPart または zone が null 参照 (Visual Basic では Nothing) です。 |
ArgumentOutOfRangeException | zoneIndex が 0 未満です。 |

WebPartManager コントロールは、MoveWebPart メソッドを使用して、webPart を同じゾーン内の新しい位置、または別のゾーン内に移動します。このメソッドは、コードから直接呼び出すことができます。さらに、ユーザーが Web パーツ ユーザー インターフェイス (UI) のさまざまなオプションを使用してコントロールを新しい位置に移動するときに呼び出すこともできます。
webPart を移動する前に多くの条件を満たす必要があります。これらの大部分は、このトピックの「例外」セクションに一覧で示されています。webPart が最初から WebPartZoneBase ゾーン内に配置されていなかった場合は、ゾーンに移動できません。

コードから直接 MoveWebPart メソッドを呼び出し、あるゾーンから別のゾーンに WebPart コントロールを移動する方法のコード例を次に示します。
コード例の最初の部分は、表示モードを変更するユーザー コントロールです。このユーザー コントロールのソース コードは、WebPartManager クラスの概要の「例」から取得できます。表示モードの詳細およびユーザー コントロールの動作方法の詳細については、「チュートリアル : Web パーツ ページでの表示モードの変更」を参照してください。
コード例の 2 番目の部分は、Web ページに 2 つのゾーンがあり、それぞれに 2 つのサーバー コントロールが配置されています。ユーザーがページ上の [Move WebPart] をクリックすると、Button1_Click メソッド内のコードにより、最初のゾーンから 2 番目のゾーンの新しい位置にコントロールが移動します。このコードは、最初に GetGenericWebPart メソッドを呼び出して、list1 コントロールをラップする GenericWebPart オブジェクトを取得する必要があります。これは、MoveWebPart メソッドの最初のパラメータに WebPart コントロールが必要であるのに対し、list1 が ASP.NET サーバー コントロールであるためです。
<%@ Page Language="vb" %> <%@ Register TagPrefix="uc1" TagName="DisplayModeMenuVB" Src="~/displaymodemenuvb.ascx" %> <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 > <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>
<%@ Page Language="C#" %> <%@ Register TagPrefix="uc1" TagName="DisplayModeMenuCS" Src="~/displaymodemenucs.ascx" %> <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 > <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>
ページを読み込んだ後、[Move WebPart] をクリックします。リンクを含むコントロールが 2 番目のゾーンの中央の位置に移動します。このコントロールの移動は、MoveWebPart メソッドを呼び出すことにより、プログラムで実行します。[Display Mode] ドロップダウン リスト コントロールを使用してページをデザイン モードに切り替え、デザイン モードでコントロールを別のゾーンまたは同じゾーン内の別の位置にドラッグすることもできます。また、WebPartManager コントロールから MoveWebPart メソッドを呼び出し、ユーザーの操作で移動を処理することもできます。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- WebPartManager.MoveWebPart メソッドのページへのリンク