Compartilhar via


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

Definição

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

webPart
WebPart

A WebPart ou outro controle de servidor que está sendo movido.

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:

  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