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 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 部件应用程序: WebPart 从 WebPart 基类继承的控件和其他服务器控件(可以是标准 ASP.NET 控件、自定义控件或用户控件)。 当这些控件中的任何一个放置在区域中 WebPartZoneBase 时,它将采用控件的功能 WebPart 。 控件 WebPart 固有此功能,但其他类型的服务器控件则不具有此功能。 若要使其他服务器控件在放置在WebPartZoneBase区域中时充当WebPart控件,ASP.NET 用 GenericWebPart 控件包装它们。 由于 控件 GenericWebPart 直接从 WebPart 类继承,因此它为其子控件提供真正的 Web 部件功能。
通常,在运行时,页面开发人员可能希望获取对 GenericWebPart 包含区域中服务器控件之一的控件的引用。 使用 GetGenericWebPart 方法可以检索对 控件的 GenericWebPart 引用。