WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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
:
Die OnWebPartMoving-Methode löst das WebPartMoving-Ereignis aus.
webPart
wird (falls erforderlich) aus der aktuellen Zone entfernt und der neuen Zone oder der neuen Position innerhalb der aktuellen Zone hinzugefügt.Die OnWebPartMoved-Methode löst das WebPartMoved-Ereignis aus.
WebPart Jedes
zoneIndex
Steuerelement in der Ursprungs- und Zielzone wird zurückgesetzt, um das verschobene Steuerelement widerzuspiegeln.