語言

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

一個伺服器控制項存在於 a WebPartZoneBase ,並在執行時被包裝為子控制 GenericWebPart 項。

傳回

一個 GenericWebPart 包裹成 control 兒童控制的對象。 null若 control 不包含於 GenericWebPart。

例外狀況

control 是 null。

範例

以下程式碼範例示範了此 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 Parts 應用:WebPart 控制項,繼承自 WebPart 基底類別;以及其他伺服器控制項,這些控制項可為標準 ASP.NET 控制項、自訂控制項或使用者控制項。 當這些控制裝置被放置在某 WebPartZoneBase 區域時,它會具備控制 WebPart 功能。 控制 WebPart 項本身就具備此功能,但其他類型的伺服器控制則沒有。 為了讓其他伺服器控制項在置於WebPart區域時能作為WebPartZoneBase控制項,ASP.NET 會用GenericWebPart控制包覆它們。 由於控制 GenericWebPart 項直接繼承自 WebPart 類別,因此為子控制項提供真正的 Web Parts 功能。

執行時,頁面開發者通常會希望取得包含某個伺服器控制項的控制項的參考 GenericWebPart 。 此 GetGenericWebPart 方法使他們能夠取得對控制項 GenericWebPart 的參考。

適用於

另請參閱