WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece o método programático padrão para adicionar WebPart controlos a uma página 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 controlo do servidor ou do utilizador) para ser adicionado a uma página Web ou aberto numa página.
- zone
- WebPartZoneBase
O WebPartZoneBase que webPart está a ser acrescentado.
- zoneIndex
- Int32
Um inteiro que representa a posição ordinal que webPart ocupa em zone, relativamente a outros controlos em zone.
Devoluções
Um WebPart controlo que foi adicionado à página.
Exceções
zone não está registado na WebPartManager coleção de zonas do controlo.
-ou-
webPart já está em zone.
O valor de zoneIndex é menor que zero.
Exemplos
O exemplo de código seguinte demonstra a utilização do AddWebPart método para adicionar um controlo 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 é clicado, o código no gestor de eventos cria um Calendar controlo e adiciona-o a uma zona como objeto GenericWebPart , 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>
Observações
O AddWebPart método é usado tanto para adicionar novos controlos dinâmicos WebPart a uma página, como para reabrir controlos estáticos ou dinâmicos que estavam anteriormente fechados numa página. Quando o método é chamado para adicionar um novo controlo, ele cria na verdade uma cópia do controlo referenciado no webPart parâmetro. É gerado um novo ID para a cópia do controlo, pelo que os programadores devem consultar o WebPart controlo devolvido pelo método para obter o novo valor do ID. Quando o método é chamado para reabrir um controlo previamente fechado, ele retorna uma referência direta ao controlo referenciado pelo webPart parâmetro.
Importante
Deve sempre usar o AddWebPart método, em vez do Add método da coleção de controlos referenciados pela WebPartManager.Controls propriedade, para adicionar WebPart controlos programaticamente à página, porque usar o Add método gera uma exceção. Para adicionar um controlo que não é um WebPart controlo (ou seja, um controlo de servidor que será envolto com um GenericWebPart controlo em tempo de execução), deve primeiro chamar o CreateWebPart método para criar o controlo, e depois chamar o AddWebPart método para adicionar o controlo. Para uma demonstração desta abordagem, veja a secção de Exemplos.