WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Web ページにプログラムで WebPart コントロールを追加する標準メソッドを提供します。
public:
System::Web::UI::WebControls::WebParts::WebPart ^ AddWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public System.Web.UI.WebControls.WebParts.WebPart AddWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
member this.AddWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> System.Web.UI.WebControls.WebParts.WebPart
Public Function AddWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer) As WebPart
パラメーター
- zone
- WebPartZoneBase
webPart
の追加先となる WebPartZoneBase。
- zoneIndex
- Int32
webPart
内の他のコントロールに対して zone
内で zone
が占める序数位置を表す整数。
戻り値
ページに追加された WebPart コントロール。
例外
zoneIndex
の値が 0 未満です。
例
次のコード例では、 メソッドを AddWebPart 使用してサーバー コントロールをプログラムでページに追加する方法を示します。 ページ マークアップには、空 <asp:webpartzone>
の要素と要素が <asp:webpartmanager>
含まれています。 [ 予定表の追加] ボタンを初めてクリックすると、イベント ハンドラーのコードによってコントロールが作成 Calendar され、オブジェクトとして GenericWebPart ゾーンに追加され、 メソッドが AddWebPart 呼び出されます。
<%@ 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>
注釈
メソッドは AddWebPart 、新しい動的 WebPart コントロールをページに追加する場合と、以前にページで閉じられていた静的コントロールまたは動的コントロールを再度開く場合の両方に使用されます。 メソッドを呼び出して新しいコントロールを追加すると、 パラメーターで参照されているコントロールのコピーが webPart
実際に作成されます。 コントロールのコピー用に新しい ID が生成されるため、開発者は メソッドから返されたコントロールを参照 WebPart して新しい ID 値を取得する必要があります。 メソッドを呼び出して以前に閉じたコントロールを再度開くと、 パラメーターによって参照されるコントロールへの直接参照が webPart
返されます。
重要
メソッドを使用すると例外がAddWebPartスローされるため、プログラムによってページにコントロールを追加WebPartするには、 プロパティによってWebPartManager.Controls参照されるコントロールのコレクションのメソッドではなくAdd、 メソッドを常に使用Addする必要があります。 コントロールではない WebPart コントロール (つまり、実行時にコントロールで GenericWebPart ラップされるサーバー コントロール) を追加するには、まず メソッドを CreateWebPart 呼び出してコントロールを作成し、次に メソッドを AddWebPart 呼び出してコントロールを追加する必要があります。 この方法のデモについては、「例」セクションを参照してください。
適用対象
こちらもご覧ください
.NET