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,将 control 包装为子控件。 如果 control 未包含在 GenericWebPart 中,则此方法返回 null

例外

controlnull

示例

下面的代码示例演示如何使用 GetGenericWebPart 方法。 该代码示例包含一个 Calendar 在区域中声明的 WebPartZone 控件。 方法 Button1_Click 首先将控件的 Calendar ID 打印到标签,然后使用 GetGenericWebPart 方法检索对包装日历的 GenericWebPart 控件的引用。 控件的 GenericWebPart ID 及其子控件 ((控件 Calendar) )的 ID 都打印到第二个标签中。

<%@ 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 用 GenericWebPart 控件包装它们。 由于 控件 GenericWebPart 直接从 WebPart 类继承,因此它为其子控件提供真正的 Web 部件功能。

通常,在运行时,页面开发人员可能希望获取对 GenericWebPart 包含区域中服务器控件之一的控件的引用。 使用 GetGenericWebPart 方法可以检索对 控件的 GenericWebPart 引用。

适用于

另请参阅