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 的子控件。

返回

GenericWebPart

一个 GenericWebPart,将 control 包装为子控件。 如果 control 未包含在 GenericWebPart 中,则此方法返回 null

例外

controlnull

示例

下面的代码示例演示了该方法的使用 GetGenericWebPart 。 代码示例包含一个 Calendar 在区域中声明的 WebPartZone 控件。 该方法 Button1_Click 首先将控件的 Calendar ID 打印到标签,然后使用 GetGenericWebPart 该方法检索对包装日历的 GenericWebPart 控件的引用。 控件的 ID 及其子控件的 GenericWebPart ID (,即 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>

注解

通常,开发人员将WebPartZoneBase两类控件置于区域中以参与Web 部件应用程序:WebPartWebPart基类继承的控件和其他服务器控件,可以是标准 ASP.NET 控件、自定义控件或用户控件。 当其中任一控件放置在区域中 WebPartZoneBase 时,它将接受控件的功能 WebPart 。 控件 WebPart 本身具有此功能,但其他类型的服务器控件则不具有此功能。 若要使其他服务器控件在放置在WebPartZoneBase区域中时充当WebPart控件,ASP.NET 用控件包装它们GenericWebPartGenericWebPart由于控件直接从WebPart类继承,因此它为其子控件提供真正的Web 部件功能。

页面开发人员通常希望在运行时获取对 GenericWebPart 包含某个区域中服务器控件的控件的引用。 该方法 GetGenericWebPart 使它们能够检索对控件的 GenericWebPart 引用。

适用于

另请参阅