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.

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)

Parametri

webPart
WebPart

Oggetto WebPart o altro controllo server di cui viene eseguito lo spostamento.

zone
WebPartZoneBase

Zona WebPartZoneBase di destinazione per lo spostamento di webPart.

zoneIndex
Int32

Integer che indica l'indice del parametro webPart relativo ad altri controlli all'interno del parametro zone.

Eccezioni

webPart non è contenuto nell'insieme Controls del controllo WebPartManager.

-oppure-

zone non è contenuto nell'insieme Zones del controllo WebPartManager.

-oppure-

L'area a cui fa riferimento la proprietà Zone del controllo webPart è null, che indica che webPart non è attualmente contenuto in un'area.

webPart o zone è null.

zoneIndex è minore di zero.

Esempio

Nell'esempio di codice seguente viene illustrato come chiamare il MoveWebPart metodo direttamente dal codice per spostare un WebPart controllo da una zona a un'altra.

L'esempio di codice include tre parti:

  • Controllo utente per la modifica delle modalità di visualizzazione.

  • Pagina Web per ospitare i controlli.

  • Spiegazione di come eseguire l'esempio di codice.

La prima parte dell'esempio di codice è il controllo utente per modificare le modalità di visualizzazione. È possibile ottenere il codice sorgente per il controllo utente dalla sezione Esempio della panoramica della WebPartManager classe. Per altre informazioni sulle modalità di visualizzazione e sul funzionamento del controllo utente, vedere Procedura dettagliata: Modifica delle modalità di visualizzazione in una pagina web part.

La seconda parte dell'esempio è una pagina Web che contiene due zone, ognuna delle quali contiene due controlli server. 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. Si noti che il codice deve prima chiamare il GetGenericWebPart metodo per recuperare l'oggetto che esegue il GenericWebPart wrapping del list1 controllo. Questa operazione è necessaria perché il primo parametro del MoveWebPart metodo richiede un controllo, mentre list1 è un WebPart controllo server di 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>

Dopo il caricamento della pagina, fare clic sul pulsante Move WebPart e notare che il controllo contenente i collegamenti si sposta nella posizione centrale della seconda zona. Questo movimento del controllo viene eseguito a livello di codice chiamando il MoveWebPart metodo . È anche possibile usare il controllo elenco a discesa Modalità visualizzazione per passare la pagina alla modalità di progettazione e in modalità di progettazione, è possibile trascinare i controlli in diverse zone o posizioni diverse all'interno delle loro zone. Il MoveWebPart metodo viene chiamato anche dal controllo per gestire tali spostamenti avviati dall'utente WebPartManager .

Commenti

Il WebPartManager controllo usa il MoveWebPart metodo per spostarsi webPart in una nuova posizione nella stessa zona o in una zona diversa. È 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 dell'interfaccia utente di Web part.

Una serie di condizioni deve essere soddisfatta prima webPart di poter essere spostata e la maggior parte di queste sono indicate dagli elementi elencati nella sezione Eccezioni di questo argomento. Se webPart non è contenuto in una WebPartZoneBase zona da iniziare, non può essere spostato in una zona.

Dopo aver soddisfatto le condizioni, la sequenza di azioni seguente si verifica per spostare webPart:

  1. Il metodo OnWebPartMoving genera l'evento WebPartMoving.

  2. webPart viene rimosso dalla zona corrente (se necessario) e aggiunto alla nuova zona o nuova posizione all'interno della zona corrente.

  3. Il metodo OnWebPartMoved genera l'evento WebPartMoved.

  4. L'oggetto zoneIndex di ogni WebPart controllo nelle zone di origine e di destinazione viene reimpostato per riflettere il controllo spostato.

Si applica a

Vedi anche