Compartilhar via


WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Método

Definição

Fornece o método programático padrão para adicionar controles WebPart a uma página da Web.

public:
 System::Web::UI::WebControls::WebParts::WebPart ^ AddWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public System.Web.UI.WebControls.WebParts.WebPart AddWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
member this.AddWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> System.Web.UI.WebControls.WebParts.WebPart
Public Function AddWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer) As WebPart

Parâmetros

webPart
WebPart

O WebPart (ou o controle de servidor ou usuário) a ser adicionado a uma página da Web ou aberto em uma página.

zone
WebPartZoneBase

O WebPartZoneBase ao qual o webPart está sendo adicionado.

zoneIndex
Int32

Um inteiro que representa a posição ordinal que o webPart ocupa no zone, em relação a outros controles no zone.

Retornos

Um controle WebPart que foi adicionado à página.

Exceções

webPart é null.

- ou -

zone é null.

zone não está registrado na coleção de zonas do controle WebPartManager.

- ou -

webPart já está no zone.

O valor do zoneIndex é menor que zero.

Exemplos

O exemplo de código a seguir demonstra o AddWebPart uso do método para adicionar um controle de servidor programaticamente a uma página. A marcação de página contém um elemento vazio <asp:webpartzone> e um <asp:webpartmanager> elemento . Na primeira vez que o botão Adicionar Calendário for clicado, o código no manipulador de eventos criará um Calendar controle e o adicionará a uma zona como um GenericWebPart objeto , chamando o AddWebPart método .

<%@ 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 Button2_Click(object sender, EventArgs e)
  {
    WebPartManager mgr = WebPartManager1;
    Calendar cal = new Calendar();
    cal.ID = "cal1";
    GenericWebPart calWebPart = mgr.CreateWebPart(cal);
    mgr.AddWebPart(calWebPart, WebPartZone1, 1);
  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    if (WebPartZone1.WebParts.Count > 1)
    {
      WebPart cal = WebPartZone1.WebParts[1];
      if (cal.Controls[0].GetType().Name == "Calendar" 
        && cal != null)
        WebPartManager1.DeleteWebPart(cal);
    }

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Adding a Server Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList  
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />
    </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 Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    Dim mgr As WebPartManager = WebPartManager1
    Dim cal As New Calendar()
    cal.ID = "cal1"
    Dim calWebPart As GenericWebPart = mgr.CreateWebPart(cal)
    mgr.AddWebPart(calWebPart, WebPartZone1, 1)
  End Sub

  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)

    If WebPartZone1.WebParts.Count > 1 Then
      Dim cal As WebPart = WebPartZone1.WebParts(1)
      If cal.Controls(0).GetType().Name = "Calendar" AndAlso _
        cal IsNot Nothing Then
        WebPartManager1.DeleteWebPart(cal)
      End If
    End If
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Adding a Server Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList  
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />
    </div>
    </form>
</body>
</html>

Comentários

O AddWebPart método é usado para adicionar novos controles dinâmicos WebPart a uma página e para reabrir controles estáticos ou dinâmicos que foram fechados anteriormente em uma página. Quando o método é chamado para adicionar um novo controle, ele realmente cria uma cópia do controle referenciado no webPart parâmetro . Uma nova ID é gerada para a cópia do controle, portanto, os desenvolvedores devem referenciar o WebPart controle retornado do método para obter o novo valor de ID. Quando o método é chamado para reabrir um controle fechado anteriormente, ele retorna uma referência direta ao controle referenciado pelo webPart parâmetro .

Importante

Você sempre deve usar o AddWebPart método , em vez do Add método da coleção de controles referenciados pela WebPartManager.Controls propriedade , para adicionar WebPart controles programaticamente à página, pois o uso do Add método gera uma exceção. Para adicionar um controle que não seja um WebPart controle (em outras palavras, um controle de servidor que será encapsulado com um GenericWebPart controle em tempo de execução), você deve primeiro chamar o CreateWebPart método para criar o controle e, em seguida, chamar o AddWebPart método para adicionar o controle. Para obter uma demonstração dessa abordagem, consulte a seção Exemplo.

Aplica-se a

Confira também