WebPartManager.GetGenericWebPart(Control) メソッド

定義

サーバー コントロールが含まれた GenericWebPart コントロールのインスタンスへの参照を取得します。

public:
 System::Web::UI::WebControls::WebParts::GenericWebPart ^ GetGenericWebPart(System::Web::UI::Control ^ control);
public System.Web.UI.WebControls.WebParts.GenericWebPart GetGenericWebPart (System.Web.UI.Control control);
member this.GetGenericWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
Public Function GetGenericWebPart (control As Control) As GenericWebPart

パラメーター

control
Control

WebPartZoneBase 内に存在し、実行時に GenericWebPart の子コントロールとしてラップされるサーバー コントロール。

戻り値

control を子コントロールとしてラップする GenericWebPart。 このメソッドは、GenericWebPartcontrol が含まれていない場合は null を返します。

例外

controlnullです。

次のコード例は、 メソッドの使用方法を GetGenericWebPart 示しています。 コード例には、ゾーン内で Calendar 宣言されたコントロールが WebPartZone 含まれています。 メソッドは Button1_Click 、最初にコントロールの Calendar ID をラベルに出力し、 メソッドを GetGenericWebPart 使用してカレンダーをラップするコントロールへの GenericWebPart 参照を取得します。 コントロールの GenericWebPart ID と子コントロールの ID (コントロール) は、どちらも 2 番目の Calendar ラベルに出力されます。

<%@ 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 Button1_Click(object sender, EventArgs e)
  {
    Label1.Text = "<h2>Server Control</h2>";
    Label1.Text += "Server Control ID:  " + Calendar1.ID;
    Label2.Text = "<h2>GenericWebPart Control</h2>";
    GenericWebPart part = mgr.GetGenericWebPart(Calendar1);
    if (part != null)
    {
      Label2.Text +=
        "GenericWebPart ID:  " + part.ID + "<br />";
      Label2.Text +=
        "Underlying Control ID: " + part.ChildControl.ID;
    }
  }

</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="mgr" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:Calendar ID="Calendar1" runat="server"
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Get GenericWebPart"
        OnClick="Button1_Click" />
      <hr />
      <asp:Label ID="Label1" runat="server" Text="" />
      <br />
      <asp:Label ID="Label2" runat="server" Text="" />
    </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 Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    Label1.Text = "<h2>Server Control</h2>"
    Label1.Text += "Server Control ID:  " + Calendar1.ID
    Label2.Text = "<h2>GenericWebPart Controls</h2>"
    Dim part As GenericWebPart
    part = mgr.GetGenericWebPart(Calendar1)
    If part IsNot Nothing Then
      Label2.Text += _
        "GenericWebPart ID:  " & part.ID & "<br />"
      Label2.Text += _
        "Underlying Control ID: " + part.ChildControl.ID
    End If
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr" runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:Calendar ID="Calendar1" runat="server"
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Get GenericWebPart"
        OnClick="Button1_Click" />
      <hr />
      <asp:Label ID="Label1" runat="server" Text="" />
      <br />
      <asp:Label ID="Label2" runat="server" Text="" />
    </div>
    </form>
</body>
</html>

注釈

一般に、開発者が Web パーツ アプリケーションWebPartに参加するためにゾーンにWebPartZoneBase配置するコントロールには、基本クラスからWebPart継承されるコントロールと、標準の ASP.NET コントロール、カスタム コントロール、またはユーザー コントロールなどのサーバー コントロールの 2 つのカテゴリがあります。 これらのコントロールのいずれかがゾーンに WebPartZoneBase 配置されると、コントロールの機能が WebPart 使用されます。 WebPartコントロールには本質的にこの機能がありますが、他の種類のサーバー コントロールでは機能しません。 他のサーバー コントロールがゾーンに配置WebPartZoneBaseされたときにコントロールとしてWebPart機能できるようにするには、コントロール ASP.NET ラップしますGenericWebPart。 コントロールは GenericWebPart クラスから WebPart 直接継承されるため、子コントロールに真の Web パーツ機能が提供されます。

多くの場合、実行時にページ開発者は、ゾーン内のサーバー コントロールの 1 つを含むコントロールへの GenericWebPart 参照を取得することが必要になる場合があります。 GetGenericWebPartメソッドを使用すると、コントロールへのGenericWebPart参照を取得できます。

適用対象

こちらもご覧ください