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

Definición

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

webPart
WebPart

Control WebPart de servidor u otro que se va a mover.

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 requiere un control /> es un control 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>

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:

  1. El OnWebPartMoving método genera el WebPartMoving evento .

  2. webPart se quita de su zona actual (si es necesario) y se agrega a su nueva zona o nueva posición dentro de su zona actual.

  3. El OnWebPartMoved método genera el WebPartMoved evento .

  4. De zoneIndex cada WebPart control de las zonas de origen y de destino se restablece para reflejar el control movido.

Se aplica a

Consulte también