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

Definição

Move um WebPart controle ou 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

webPart
WebPart

O WebPart controle do servidor ou outro que está sendo movido.

zone
WebPartZoneBase

O destino WebPartZoneBase para o qual webPart está sendo movido.

zoneIndex
Int32

Um inteiro que indica o índice de webPart relação a outros controles dentro zone.

Exceções

webPart não está contido na Controls coleção do WebPartManager controle.

-ou-

zone não está contido na Zones coleção do WebPartManager controle.

-ou-

A zona referenciada pela propriedade do controle é null, o webPart que significa que webPart não está contida atualmente em uma Zone 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 do 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 do 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 do usuário funciona, consulte Passo a passo: alterando os 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 com 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 método MoveWebPart requer um controle WebPart, 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 zonas diferentes ou posições diferentes dentro de suas zonas. O MoveWebPart método também é chamado pelo controle para lidar com esses movimentos iniciados pelo WebPartManager 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) da Web Parts.

Várias condições devem ser atendidas antes webPart de serem 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, ela não poderá ser movida para uma zona.

Depois que as condições forem atendidas, a seguinte sequência de ações ocorrerá para mover webPart:

  1. O OnWebPartMoving método gera o WebPartMoving evento.

  2. webPart é removido de sua zona atual (se necessário) e adicionado à sua nova zona ou nova posição dentro de sua zona atual.

  3. O OnWebPartMoved método gera o WebPartMoved evento.

  4. O zoneIndex de todos os WebPart controles nas zonas de origem e de destino é redefinido para refletir o controle movido.

Aplica-se a

Confira também