WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Move um WebPart ou um controle de servidor de uma zona WebPartZoneBase para outra ou para uma nova posição dentro da mesma zona.
public:
virtual void MoveWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public virtual void MoveWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
abstract member MoveWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> unit
override this.MoveWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> unit
Public Overridable Sub MoveWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer)
Parâmetros
- zone
- WebPartZoneBase
O destino WebPartZoneBase ao qual webPart
está sendo movido.
- zoneIndex
- Int32
Um inteiro que indica o índice da webPart
em relação a outros controles na zone
.
Exceções
webPart
não está contido na coleção Controls do controle WebPartManager.
- ou -
zone
não está contido na coleção Zones do controle WebPartManager.
- ou -
A zona referenciada pela propriedade Zone do controle webPart
é null
, o que significa que webPart
não está atualmente contido em uma zona.
webPart
ou zone
é null
.
zoneIndex
é menor que zero.
Exemplos
O exemplo de código a seguir demonstra como chamar o MoveWebPart método diretamente do código para mover um WebPart controle de uma zona para outra.
O exemplo de código tem três partes:
Um controle de usuário para alterar os modos de exibição.
Uma página da Web para hospedar os controles.
Uma explicação de como executar o exemplo de código.
A primeira parte do exemplo de código é o controle de usuário para alterar os modos de exibição. Você pode obter o código-fonte para o controle de usuário na seção Exemplo da visão geral da WebPartManager classe. Para obter mais informações sobre modos de exibição e como o controle de usuário funciona, consulte Passo a passo: alterando modos de exibição em uma página de Web Parts.
A segunda parte do exemplo é uma página da Web que contém duas zonas, cada uma contendo dois controles de servidor. Quando um usuário clica no botão Mover WebPart na página, o código no Button1_Click
método move um controle da primeira zona para uma nova posição na segunda zona. Observe que o código primeiro deve chamar o GetGenericWebPart método para recuperar o GenericWebPart objeto que encapsula o list1
controle. Isso é necessário porque o primeiro parâmetro do MoveWebPart método requer um WebPart controle , enquanto list1
é um controle de servidor ASP.NET.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuCS"
Src="~/displaymodemenucs.ascx" %>
<!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)
{
GenericWebPart part = mgr1.GetGenericWebPart(list1);
mgr1.MoveWebPart(part, zone2, zone2.WebParts.Count - 1);
}
</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="mgr1" runat="server" />
<uc1:DisplayModeMenuCS ID="menu1" runat="server" />
<asp:WebPartZone ID="zone1" runat="server">
<ZoneTemplate>
<asp:Label ID="Label1" runat="server"
Text="My Navigation"
Title="Zone 1 Label"/>
<asp:BulletedList
ID="list1"
Runat="server"
DisplayMode="HyperLink"
Title="Favorite Links"
AuthorizationFilter="admin">
<asp:ListItem Value="http://msdn.microsoft.com">
MSDN
</asp:ListItem>
<asp:ListItem Value="http://www.asp.net">
ASP.NET
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
</asp:BulletedList>
</ZoneTemplate>
</asp:WebPartZone>
<asp:WebPartZone ID="zone2" runat="server">
<ZoneTemplate>
<asp:Label ID="Label2" runat="server"
Text="My Data"
Title="Zone 2 Label"/>
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar"/>
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="Move WebPart"
OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuVB"
Src="~/displaymodemenuvb.ascx" %>
<!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)
Dim part As GenericWebPart = mgr1.GetGenericWebPart(list1)
mgr1.MoveWebPart(part, zone2, zone2.WebParts.Count - 1)
End Sub
</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="mgr1" runat="server" />
<uc1:DisplayModeMenuVB ID="menu1" runat="server" />
<asp:WebPartZone ID="zone1" runat="server">
<ZoneTemplate>
<asp:Label ID="Label1" runat="server"
Text="My Navigation"
Title="Zone 1 Label"/>
<asp:BulletedList
ID="list1"
Runat="server"
DisplayMode="HyperLink"
Title="Favorite Links"
AuthorizationFilter="admin">
<asp:ListItem Value="http://msdn.microsoft.com">
MSDN
</asp:ListItem>
<asp:ListItem Value="http://www.asp.net">
ASP.NET
</asp:ListItem>
<asp:ListItem Value="http://www.msn.com">
MSN
</asp:ListItem>
</asp:BulletedList>
</ZoneTemplate>
</asp:WebPartZone>
<asp:WebPartZone ID="zone2" runat="server">
<ZoneTemplate>
<asp:Label ID="Label2" runat="server"
Text="My Data"
Title="Zone 2 Label"/>
<asp:Calendar ID="Calendar1" runat="server"
Title="My Calendar"/>
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<asp:Button ID="Button1" runat="server"
Text="Move WebPart"
OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
Depois que a página for carregada, clique no botão Mover WebPart e observe que o controle que contém os links se move para a posição intermediária na segunda zona. Esse movimento do controle é realizado programaticamente chamando o MoveWebPart método . Você também pode usar o controle de lista suspensa Modo de Exibição para alternar a página para o modo de design e, no modo de design, você pode arrastar os controles para diferentes zonas ou posições diferentes dentro de suas zonas. O MoveWebPart método também é chamado pelo WebPartManager controle para lidar com essas movimentações iniciadas pelo usuário.
Comentários
O WebPartManager controle usa o MoveWebPart método para mover webPart
para um novo local na mesma zona ou em uma zona diferente. Você pode chamar esse método diretamente do código e ele também é invocado quando um usuário move um controle para uma nova posição usando várias opções na interface do usuário (interface do usuário) de Web Parts.
Várias condições devem ser atendidas antes webPart
que possam ser movidas, e a maioria delas é indicada por itens listados na seção Exceções deste tópico. Se webPart
não estiver contido em uma WebPartZoneBase zona para começar, ele não poderá ser movido para uma zona.
Depois que as condições forem atendidas, ocorrerá a seguinte sequência de ações para mover webPart
:
O OnWebPartMoving método gera o WebPartMoving evento .
webPart
é removido de sua zona atual (se necessário) e adicionado à sua nova zona ou nova posição dentro de sua zona atual.O OnWebPartMoved método gera o WebPartMoved evento .
O
zoneIndex
de todos os WebPart controles nas zonas de origem e de destino é redefinido para refletir o controle movido.