WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Metodo

Definizione

Sposta un controllo WebPart o un controllo server da un'area WebPartZoneBase a un'altra o in una nuova posizione all'interno della stessa area.Moves a WebPart or server control from one WebPartZoneBase zone to another, or to a new position within the same zone.

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

Parametri

webPart
WebPart

Oggetto WebPart o altro controllo server di cui viene eseguito lo spostamento.The WebPart or other server control being moved.

zone
WebPartZoneBase

Zona WebPartZoneBase di destinazione per lo spostamento di webPart.The target WebPartZoneBase to which webPart is being moved.

zoneIndex
Int32

Integer che indica l'indice del parametro webPart relativo ad altri controlli all'interno del parametro zone.An integer that indicates the index of webPart relative to other controls within zone.

Eccezioni

webPart non è contenuto nell'insieme Controls del controllo WebPartManager.webPart is not contained in the Controls collection of the WebPartManager control.

In alternativa-or- zone non è contenuto nell'insieme Zones del controllo WebPartManager.zone is not contained in the Zones collection of the WebPartManager control.

In alternativa-or- L'area a cui fa riferimento la proprietà Zone del controllo webPart è null, che indica che webPart non è attualmente contenuto in un'area.The zone referenced by the webPart control's Zone property is null, which means that webPart is not currently contained in a zone.

webPart o zone è null.webPart or zone is null.

zoneIndex è minore di zero.zoneIndex is less than zero.

Esempi

Nell'esempio di codice seguente viene illustrato come chiamare MoveWebPart il metodo direttamente dal codice per spostare WebPart un controllo da una zona a un'altra.The following code example demonstrates how to call the MoveWebPart method directly from code to move a WebPart control from one zone to another.

L'esempio di codice è costituito da tre parti:The code example has three parts:

  • Controllo utente per la modifica delle modalità di visualizzazione.A user control for changing display modes.

  • Pagina Web per ospitare i controlli.A Web page to host the controls.

  • Una spiegazione su come eseguire l'esempio di codice.An explanation of how to run the code example.

La prima parte dell'esempio di codice è il controllo utente per la modifica delle modalità di visualizzazione.The first part of the code example is the user control for changing display modes. È possibile ottenere il codice sorgente per il controllo utente dalla sezione esempio della panoramica della WebPartManager classe.You can obtain the source code for the user control from the Example section of the WebPartManager class overview. Per ulteriori informazioni sulle modalità di visualizzazione e sul funzionamento del controllo utente, vedere Procedura dettagliata: Modifica delle modalità di visualizzazione in unapagina Web part.For more information about display modes and how the user control works, see Walkthrough: Changing Display Modes on a Web Parts Page.

La seconda parte dell'esempio è una pagina Web che contiene due zone, ognuna delle quali contiene due controlli server.The second part of the example is a Web page that contains two zones, each of which contains two server controls. Quando un utente fa clic sul pulsante Move WebPart nella pagina, il codice nel Button1_Click metodo sposta un controllo dalla prima zona a una nuova posizione nella seconda zona.When a user clicks the Move WebPart button on the page, the code in the Button1_Click method moves a control from the first zone to a new position in the second zone. Si noti che il codice deve prima chiamare GetGenericWebPart il metodo per recuperare GenericWebPart l'oggetto che esegue il list1 wrapping del controllo.Notice that the code first must call the GetGenericWebPart method to retrieve the GenericWebPart object that wraps the list1 control. Questa operazione è necessaria perché il primo parametro del MoveWebPart metodo richiede un WebPart controllo, mentre list1 è un controllo server ASP.NET.This is required because the first parameter of the MoveWebPart method requires a WebPart control, whereas list1 is an ASP.NET server control.

<%@ 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>

Dopo che la pagina è stata caricata, fare clic sul pulsante Sposta WebPart e notare che il controllo che contiene i collegamenti si sposta nella posizione intermedia della seconda zona.After the page loads, click the Move WebPart button, and note that the control that contains the links moves into the middle position in the second zone. Questo movimento del controllo viene eseguito a livello di codice chiamando il MoveWebPart metodo.This movement of the control is accomplished programmatically by calling the MoveWebPart method. È anche possibile usare il controllo elenco a discesa modalità di visualizzazione per passare alla modalità progettazione della pagina e in modalità progettazione è possibile trascinare i controlli in aree diverse o posizioni diverse all'interno delle rispettive zone.You can also use the Display Mode drop-down list control to switch the page to design mode, and in design mode, you can drag the controls to different zones or different positions within their zones. Il MoveWebPart metodo viene chiamato anche WebPartManager dal controllo per gestire questi spostamenti avviati dall'utente.The MoveWebPart method is also called by the WebPartManager control to handle such user-initiated moves.

Commenti

Il WebPartManager controllo Usa il MoveWebPart metodo per spostarsi webPart in una nuova posizione nella stessa area o in un'area diversa.The WebPartManager control uses the MoveWebPart method to move webPart to a new location in the same zone, or in a different zone. È possibile chiamare questo metodo direttamente dal codice e viene richiamato anche quando un utente sposta un controllo in una nuova posizione usando varie opzioni nell'interfaccia utente di Web part.You can call this method directly from code, and it is also invoked when a user moves a control to a new position using various options in the Web Parts user interface (UI).

Prima webPart di poter spostare un numero di condizioni, è necessario che la maggior parte di esse sia indicata dagli elementi elencati nella sezione delle eccezioni di questo argomento.A number of conditions must be met before webPart can be moved, and most of these are indicated by items listed in the Exceptions section of this topic. Se webPart non è stato contenuto in WebPartZoneBase una zona per iniziare, non può essere spostato in una zona.If webPart was not contained in a WebPartZoneBase zone to begin with, it cannot be moved into a zone.

Una volta soddisfatte le condizioni, si verifica webPartla sequenza di azioni seguente:After the conditions have been met, the following sequence of actions occurs to move webPart:

  1. Il metodo OnWebPartMoving genera l'evento WebPartMoving.The OnWebPartMoving method raises the WebPartMoving event.

  2. webPartviene rimosso dalla zona corrente (se necessario) e aggiunto alla nuova zona o alla nuova posizione all'interno della zona corrente.webPart is removed from its current zone (if necessary), and added to its new zone or new position within its current zone.

  3. Il metodo OnWebPartMoved genera l'evento WebPartMoved.The OnWebPartMoved method raises the WebPartMoved event.

  4. Il zoneIndex di ogni WebPart controllo in entrambe le aree di origine e di destinazione viene reimpostato in modo da riflettere il controllo spostato.The zoneIndex of every WebPart control in both the origin and destination zones is reset to reflect the moved control.

Si applica a

Vedi anche