WebPartManager.GetGenericWebPart(Control) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene una referencia a la instancia del control GenericWebPart que contiene un control de servidor.
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
Parámetros
- control
- Control
Control de servidor que existe en una clase WebPartZoneBase y se ajusta en tiempo de ejecución como un control secundario de GenericWebPart.
Devoluciones
Control GenericWebPart que ajusta control
como un control secundario. El método devuelve null
si control
no está incluido en un control GenericWebPart.
Excepciones
control
es null
.
Ejemplos
En el ejemplo de código siguiente se muestra el uso del GetGenericWebPart método . El ejemplo de código contiene un Calendar control declarado dentro de una WebPartZone zona. El Button1_Click
método imprime primero el identificador del Calendar control en una etiqueta y, a continuación, usa el GetGenericWebPart método para recuperar una referencia al GenericWebPart control que encapsula el calendario. El identificador del GenericWebPart control y el identificador de su control secundario (que es el Calendar control), se imprimen en una segunda etiqueta.
<%@ 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>
Comentarios
En general, hay dos categorías de controles que los desarrolladores colocan en zonas para participar en WebPartZoneBase aplicaciones de elementos web: WebPart controles que heredan de la WebPart clase base y otros controles de servidor, que pueden ser controles estándar ASP.NET, controles personalizados o controles de usuario. Cuando cualquiera de estos controles se coloca en una WebPartZoneBase zona, toma la funcionalidad de un WebPart control. Un WebPart control tiene esta funcionalidad inherentemente, pero los otros tipos de controles de servidor no lo hacen. Para permitir que los demás controles de servidor actúen como WebPart controles cuando se colocan en una WebPartZoneBase zona, ASP.NET los encapsula con un GenericWebPart control . Dado que el GenericWebPart control hereda directamente de la WebPart clase , proporciona sus controles secundarios con características verdaderas de elementos web.
A menudo en tiempo de ejecución, es posible que los desarrolladores de páginas quieran obtener una referencia al GenericWebPart control que contiene uno de los controles de servidor de una zona. El GetGenericWebPart método les permite recuperar una referencia al GenericWebPart control .