WebPartManager.GetGenericWebPart(Control) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得包含伺服器控制項之 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
。
例外狀況
control
為 null
。
範例
下列程式代碼範例示範 如何使用 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 參考。