共用方式為


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 識別碼列印至標籤,然後使用 GetGenericWebPart 方法來擷取包裝行事曆之 GenericWebPart 控制項的參考。 控制項的 GenericWebPart 識別碼及其子控制項的識別碼 (是 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 原本就具有這項功能,但其他類型的伺服器控制項則不會。 若要讓其他伺服器控制項在放置於 WebPartZoneBase 區域中時做為 WebPart 控制項,ASP.NET 將它們包裝成 GenericWebPart 控制項。 GenericWebPart因為控制項會直接從 WebPart 類別繼承,所以它提供其子控制項具有真正的 Web 元件功能。

通常在執行時間,頁面開發人員可能會想要取得包含區域中其中一個伺服器控制項之控制項的參考 GenericWebPart 。 方法 GetGenericWebPart 可讓它們擷取控制項的 GenericWebPart 參考。

適用於

另請參閱