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为子控件的 Acontrol。 如果方法不包含在 . null中,则返回controlGenericWebPart该方法。

例外

controlnull

示例

下面的代码示例演示了该方法的使用 GetGenericWebPart 。 该代码示例包含区域中 Calendar 声明的 WebPartZone 控件。 该方法 Button1_Click 首先将控件的 Calendar ID 打印到标签,然后使用 GetGenericWebPart 该方法检索对 GenericWebPart 包装日历的控件的引用。 控件的 GenericWebPart ID 及其子控件的 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 部件应用程序:WebPart 控件,这些控件继承自 WebPart 基类和其他服务器控件,可以是标准 ASP.NET 控件、自定义控件或用户控件。 当这些控件中的任何一个都放置在区域中 WebPartZoneBase 时,它将采用控件的功能 WebPart 。 控件 WebPart 本质上具有此功能,但其他类型的服务器控件并不具有此功能。 若要使其他服务器控件在放置在 WebPart 区域中时充当 WebPartZoneBase 控件,ASP.NET 用 GenericWebPart 控件包装它们。 由于控件 GenericWebPart 直接从 WebPart 类继承,因此它为其子控件提供真正的 Web 部件功能。

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

适用于

另请参阅