WebPartManager.MoveWebPart(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.
Move um WebPart controlo de servidor de uma WebPartZoneBase zona 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 alvo WebPartZoneBase para onde webPart está a ser transferido.
- zoneIndex
- Int32
Um inteiro que indica o índice de webPart relativo a outros controlos dentro zonede .
Exceções
webPart não está contido na Controls coleção do WebPartManager controlo.
-ou-
zone não está contido na Zones coleção do WebPartManager controlo.
-ou-
A zona referenciada pela webPart propriedade do Zone controlo é null, o que significa que webPart não está atualmente contida numa zona.
webPart ou zone é null.
zoneIndex é inferior a zero.
Exemplos
O exemplo de código seguinte demonstra como chamar o MoveWebPart método diretamente do código para mover um WebPart controlo de uma zona para outra.
O exemplo de código tem três partes:
Um controlo do utilizador para alterar modos de visualização.
Uma página web para alojar os controlos.
Uma explicação de como executar o exemplo do código.
A primeira parte do exemplo de código é o controlo do utilizador para alterar os modos de visualização. Pode obter o código-fonte do controlo de utilizador a partir da secção Exemplo da WebPartManager visão geral da classe. Para mais informações sobre modos de visualização e como funciona o controlo do utilizador, consulte Walkthrough: Changing Display Modes on a Web Parts Page.
A segunda parte do exemplo é uma página Web que contém duas zonas, cada uma contendo dois controlos de servidor. Quando um utilizador clica no botão Mover WebPart na página, o código do Button1_Click método move um controlo da primeira zona para uma nova posição na segunda zona. Note que o código tem primeiro de chamar o GetGenericWebPart método para recuperar o GenericWebPart objeto que envolve o list1 controlo. Isto é necessário porque o primeiro parâmetro do método MoveWebPart requer um controlo WebPart, enquanto list1 é um controlo ASP.NET servidor.
<%@ 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 de a página carregar, clique no botão Mover WebPart e note que o controlo que contém os links passa para a posição do meio na segunda zona. Este movimento do controlo é realizado programaticamente ao chamar o MoveWebPart método. Também pode usar o controlo de lista suspensa do Modo de Visualização para mudar a página para o modo design e, no modo design, pode arrastar os controlos para diferentes zonas ou posições dentro das suas zonas. O MoveWebPart método é também chamado pelo WebPartManager controlo para lidar com tais movimentos iniciados pelo utilizador.
Observações
O WebPartManager controlo utiliza o MoveWebPart método para se deslocar webPart para um novo local na mesma zona, ou para uma zona diferente. Pode chamar este método diretamente a partir do código, e também é invocado quando um utilizador move um controlo para uma nova posição usando várias opções na interface de utilizador (UI) Web Parts.
Devem ser cumpridas várias condições antes de webPart poderem ser movidas, e a maioria delas está indicada pelos itens listados na secção de Exceções deste tópico. Se webPart não estava contido numa WebPartZoneBase zona desde o início, não pode ser movido para dentro de uma zona.
Após o cumprimento das condições, ocorre a seguinte sequência de ações para avançar webPart:
O OnWebPartMoving método eleva o WebPartMoving evento.
webParté removido da sua zona atual (se necessário) e adicionado à sua nova zona ou nova posição dentro da sua zona atual.O OnWebPartMoved método eleva o WebPartMoved evento.
O
zoneIndexvalor de cada WebPart controlo tanto na zona de origem como na de destino é reiniciado para refletir o controlo movido.