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

Public Function AddWebPart ( _ webPart As WebPart, _ zone As WebPartZoneBase, _ zoneIndex As Integer _ ) As WebPart
Dim instance As WebPartManager Dim webPart As WebPart Dim zone As WebPartZoneBase Dim zoneIndex As Integer Dim returnValue As WebPart returnValue = instance.AddWebPart(webPart, zone, zoneIndex)
- webPart
Web ページに追加するか、ページ上で開く WebPart (あるいは、サーバー コントロールまたはユーザー コントロール)。
ページに追加された WebPart コントロール。


AddWebPart メソッドは、ページに新しい動的な WebPart コントロールを追加する場合、およびページ上の前回閉じたスタティック コントロールまたはダイナミック コントロールを再度開く場合の両方に使用します。このメソッドを呼び出して新しいコントロールを追加する場合、それは実際には webPart パラメータで参照するコントロールのコピーを作成します。コントロールのコピーに対して新しい ID が生成されるため、開発者はメソッドから返される WebPart コントロールを参照して、新しい ID 値を取得する必要があります。このメソッドを呼び出して前回閉じたコントロールを再度開くと、webPart パラメータで参照するコントロールへの直接参照が返されます。
![]() |
---|
ページにプログラムで WebPart コントロールを追加する場合、Add メソッドを使用すると例外がスローされるため、WebPartManager.Controls プロパティで参照されるコントロールのコレクションの Add メソッドではなく、常に AddWebPart メソッドを使用する必要があります。WebPart 以外のコントロール (つまり、実行時に GenericWebPart コントロールでラップされるサーバー コントロール) を追加するには、最初に CreateWebPart メソッドを呼び出してコントロールを作成し、次に AddWebPart メソッドを呼び出してそのコントロールを追加する必要があります。この方法については、「例」を参照してください。 |

AddWebPart メソッドを使用して、プログラムでページにサーバー コントロールを追加する方法のコード例を次に示します。ページ マークアップには、空の <asp:webpartzone> 要素、および <asp:webpartmanager> 要素が含まれています。初めて [Add Calendar] をクリックすると、イベント ハンドラのコードが Calendar コントロールを作成し、それを GenericWebPart オブジェクトとしてゾーンに追加し、AddWebPart メソッドを呼び出します。
<%@ Page Language="vb" %> <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 > <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>
<%@ Page Language="C#" %> <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 > <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>

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.AddWebPart メソッドのページへのリンク