WebPartManager.GetGenericWebPart(Control) Método

Definição

Obtém uma referência à instância do GenericWebPart controle que contém um controle 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

Um controle de servidor que existe em um WebPartZoneBase e é encapsulado como um controle filho de um GenericWebPart tempo de execução.

Retornos

Um GenericWebPart que encapsula control como um controle filho. O método retornará null se control não estiver contido em um GenericWebPart.

Exceções

control é null.

Exemplos

O exemplo de código a seguir demonstra o uso do GetGenericWebPart método. O exemplo de código contém um Calendar controle declarado dentro de uma WebPartZone zona. O Button1_Click método primeiro imprime a ID do Calendar controle em um rótulo e, em seguida, usa o GetGenericWebPart método para recuperar uma referência ao GenericWebPart controle que encapsula o calendário. A ID do GenericWebPart controle e a ID de seu controle filho (que é o Calendar controle), são impressas em um segundo rótulo.

<%@ 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>

Comentários

Em geral, há duas categorias de controles que os desenvolvedores colocam em zonas WebPartZoneBase para participar de aplicativos web parts: controles WebPart, que herdam da classe base WebPart e outros controles de servidor, que podem ser controles de ASP.NET padrão, controles personalizados ou controles de usuário. Quando qualquer um desses controles é colocado em uma WebPartZoneBase zona, ele assume a funcionalidade de um WebPart controle. Um WebPart controle tem essa funcionalidade inerentemente, mas os outros tipos de controles de servidor não. Para permitir que os outros controles de servidor atuem como controles WebPart quando são colocados em uma zona WebPartZoneBase, ASP.NET os encapsula com um controle GenericWebPart. Como o GenericWebPart controle herda diretamente da classe, ele fornece seus WebPart controles filho com recursos de Web Parts verdadeiros.

Geralmente em tempo de execução, os desenvolvedores de páginas podem querer obter uma referência ao GenericWebPart controle que contém um dos controles de servidor em uma zona. O GetGenericWebPart método permite que eles recuperem uma referência ao GenericWebPart controle.

Aplica-se a

Confira também