WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Mueve un WebPart control de servidor o de una WebPartZoneBase zona a otra, o a una nueva posición dentro de la misma 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
WebPartZoneBase Destino al que webPart se va a mover.
- zoneIndex
- Int32
Entero que indica el índice de webPart relativo a otros controles dentro de zone.
Excepciones
webPart no está incluido en la Controls colección del WebPartManager control .
O bien
zone no está incluido en la Zones colección del WebPartManager control .
O bien
La zona a la que hace referencia la webPart propiedad del Zone control es null, lo que significa que webPart actualmente no está contenida en una zona.
webPart o zone es null.
zoneIndex es menor que cero.
Ejemplos
En el ejemplo de código siguiente se muestra cómo llamar al método directamente desde el MoveWebPart código para mover un WebPart control de una zona a otra.
El ejemplo de código tiene tres partes:
Control de usuario para cambiar los modos de visualización.
Una página web para hospedar los controles.
Explicación de cómo ejecutar el ejemplo de código.
La primera parte del ejemplo de código es el control de usuario para cambiar los modos de visualización. Puede obtener el código fuente del control de usuario en la sección Ejemplo de la información general de la WebPartManager clase. Para obtener más información sobre los modos de visualización y cómo funciona el control de usuario, vea Tutorial: Cambio de modos de presentación en una página de elementos web.
La segunda parte del ejemplo es una página web que contiene dos zonas, cada una de las cuales contiene dos controles de servidor. Cuando un usuario hace clic en el botón Mover elemento web de la página, el código del Button1_Click método mueve un control de la primera zona a una nueva posición en la segunda zona. Observe que el código primero debe llamar al GetGenericWebPart método para recuperar el GenericWebPart objeto que encapsula el list1 control. Esto es necesario porque el primer parámetro del método
<%@ 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>
Después de cargar la página, haga clic en el botón Mover elemento web y observe que el control que contiene los vínculos se mueve a la posición central de la segunda zona. Este movimiento del control se realiza mediante programación llamando al MoveWebPart método . También puedes usar el control de lista desplegable Modo de presentación para cambiar la página al modo de diseño y, en modo de diseño, puedes arrastrar los controles a diferentes zonas o posiciones diferentes dentro de sus zonas. El MoveWebPart control también llama al método para controlar estos movimientos iniciados por el WebPartManager usuario.
Comentarios
El WebPartManager control usa el MoveWebPart método para desplazarse webPart a una nueva ubicación de la misma zona o en una zona diferente. Puede llamar a este método directamente desde el código y también se invoca cuando un usuario mueve un control a una nueva posición mediante varias opciones en la interfaz de usuario (UI) de elementos web.
Se deben cumplir varias condiciones antes webPart de poder moverse y la mayoría de ellas se indican mediante elementos enumerados en la sección Excepciones de este tema. Si webPart no estaba contenido en una WebPartZoneBase zona para comenzar, no se puede mover a una zona.
Una vez que se cumplen las condiciones, se produce la siguiente secuencia de acciones para mover webPart:
El OnWebPartMoving método genera el WebPartMoving evento .
webPartse quita de su zona actual (si es necesario) y se agrega a su nueva zona o nueva posición dentro de su zona actual.El OnWebPartMoved método genera el WebPartMoved evento .
De
zoneIndexcada WebPart control de las zonas de origen y de destino se restablece para reflejar el control movido.