WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Methode

Definition

Verschiebt ein WebPart-Steuerelement oder ein Serversteuerelement aus einer WebPartZoneBase-Zone in eine andere Zone oder an eine neue Position innerhalb derselben 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
Public Overridable Sub MoveWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer)

Parameter

webPart
WebPart

Der WebPart oder ein anderes Serversteuerelement, das verschoben wird.

zone
WebPartZoneBase

Die Ziel-WebPartZoneBase, in die webPart verschoben wird.

zoneIndex
Int32

Eine ganze Zahl, die den Index von webPart im Verhältnis zu anderen Steuerelementen innerhalb von zone angibt.

Ausnahmen

webPart ist in der Controls-Auflistung des WebPartManager-Steuerelements nicht enthalten.

- oder -

zone ist in der Zones-Auflistung des WebPartManager-Steuerelements nicht enthalten.

- oder -

Die Zone, auf die die Zone-Eigenschaft des webPart-Steuerelements verweist, lautet null. Dies bedeutet, dass webPart derzeit in keiner Zone enthalten ist.

webPart oder zone ist null.

zoneIndex ist kleiner als Null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Die MoveWebPart -Methode direkt aus Code aufgerufen wird, um ein WebPart Steuerelement von einer Zone in eine andere zu verschieben.

Das Codebeispiel umfasst drei Teile:

  • Ein Benutzersteuerelement zum Ändern der Anzeigemodi.

  • Eine Webseite zum Hosten der Steuerelemente.

  • Eine Erklärung zum Ausführen des Codebeispiels.

Der erste Teil des Codebeispiels ist das Benutzersteuerelement zum Ändern der Anzeigemodi. Sie können den Quellcode für das Benutzersteuerelement im Abschnitt Beispiel der WebPartManager Klassenübersicht abrufen. Weitere Informationen zu Anzeigemodi und zur Funktionsweise des Benutzersteuerelements finden Sie unter Exemplarische Vorgehensweise: Ändern von Anzeigemodi auf einer Webpartseite.

Der zweite Teil des Beispiels ist eine Webseite, die zwei Zonen enthält, von denen jede zwei Serversteuerelemente enthält. Wenn ein Benutzer auf der Seite auf die Schaltfläche WebPart verschieben klickt, verschiebt der Code in der Button1_Click -Methode ein Steuerelement von der ersten Zone an eine neue Position in der zweiten Zone. Beachten Sie, dass der Code zuerst die GetGenericWebPart -Methode aufrufen muss, um das GenericWebPart Objekt abzurufen, das das list1 Steuerelement umschließt. Dies ist erforderlich, da der erste Parameter der MoveWebPart -Methode ein WebPart Steuerelement erfordert, während es sich um list1 ein ASP.NET-Serversteuerelement handelt.

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

Klicken Sie nach dem Laden der Seite auf die Schaltfläche WebPart verschieben , und beachten Sie, dass das Steuerelement, das die Links enthält, in die mittlere Position der zweiten Zone verschoben wird. Diese Bewegung des Steuerelements erfolgt programmgesteuert durch Aufrufen der MoveWebPart -Methode. Sie können auch das Dropdownlistensteuerelement Anzeigemodus verwenden, um die Seite in den Entwurfsmodus zu wechseln, und im Entwurfsmodus können Sie die Steuerelemente in verschiedene Zonen oder verschiedene Positionen innerhalb ihrer Zonen ziehen. Die MoveWebPart -Methode wird auch vom WebPartManager -Steuerelement aufgerufen, um solche vom Benutzer initiierten Verschiebungen zu verarbeiten.

Hinweise

Das WebPartManager -Steuerelement verwendet die MoveWebPart -Methode, um an einen neuen Speicherort in derselben Zone oder in einer anderen Zone zu wechseln webPart . Sie können diese Methode direkt aus Code aufrufen, und sie wird auch aufgerufen, wenn ein Benutzer ein Steuerelement mithilfe verschiedener Optionen in der Webpart-Benutzeroberfläche (UI) an eine neue Position verschiebt.

Eine Reihe von Bedingungen muss erfüllt sein, bevor webPart verschoben werden kann, und die meisten davon werden durch Elemente angegeben, die im Abschnitt Ausnahmen dieses Themas aufgeführt sind. Wenn webPart sie zunächst nicht in einer WebPartZoneBase Zone enthalten war, kann sie nicht in eine Zone verschoben werden.

Nachdem die Bedingungen erfüllt wurden, wird die folgende Abfolge von Aktionen verschoben webPart:

  1. Die OnWebPartMoving-Methode löst das WebPartMoving-Ereignis aus.

  2. webPart wird (falls erforderlich) aus der aktuellen Zone entfernt und der neuen Zone oder der neuen Position innerhalb der aktuellen Zone hinzugefügt.

  3. Die OnWebPartMoved-Methode löst das WebPartMoved-Ereignis aus.

  4. WebPart Jedes zoneIndex Steuerelement in der Ursprungs- und Zielzone wird zurückgesetzt, um das verschobene Steuerelement widerzuspiegeln.

Gilt für:

Weitere Informationen