WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Flyttar en WebPart eller serverkontroll från en WebPartZoneBase zon till en annan eller till en ny position inom samma zon.
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)
Parametrar
- zone
- WebPartZoneBase
WebPartZoneBase Målet som webPart flyttas till.
- zoneIndex
- Int32
Ett heltal som anger indexet webPart för i förhållande till andra kontroller i zone.
Undantag
webPart finns inte i Controls kontrollens WebPartManager samling.
-eller-
zone finns inte i Zones kontrollens WebPartManager samling.
-eller-
Zonen som refereras av webPart kontrollens Zone egenskap är null, vilket innebär att den webPart för närvarande inte finns i en zon.
webPart eller zone är null.
zoneIndex är mindre än noll.
Exempel
I följande kodexempel visas hur du anropar MoveWebPart metoden direkt från kod för att flytta en WebPart kontroll från en zon till en annan.
Kodexemplet har tre delar:
En användarkontroll för att ändra visningslägen.
En webbsida som ska vara värd för kontrollerna.
En förklaring av hur du kör kodexemplet.
Den första delen av kodexemplet är användarkontrollen för att ändra visningslägen. Du kan hämta källkoden för användarkontrollen från avsnittet Exempel i klassöversikten WebPartManager . Mer information om visningslägen och hur användarkontrollen fungerar finns i Genomgång: Ändra visningslägen på en webbsida.
Den andra delen av exemplet är en webbsida som innehåller två zoner, som var och en innehåller två serverkontroller. När en användare klickar på knappen Flytta webbdel på sidan flyttar koden i Button1_Click metoden en kontroll från den första zonen till en ny position i den andra zonen. Observera att koden först måste anropa GetGenericWebPart metoden för att hämta objektet GenericWebPart som omsluter list1 kontrollen. Detta krävs eftersom den första parametern i metoden MoveWebPart kräver en WebPart-kontroll, medan list1 är en ASP.NET serverkontroll.
<%@ 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>
När sidan har lästs in klickar du på knappen Flytta webbdel och noterar att kontrollen som innehåller länkarna flyttas till mittenpositionen i den andra zonen. Den här förflyttningen av kontrollen utförs programmatiskt genom att anropa MoveWebPart metoden. Du kan också använda listrutan Visningsläge för att växla sidan till designläge, och i designläge kan du dra kontrollerna till olika zoner eller olika positioner inom deras zoner. Metoden MoveWebPart anropas också av WebPartManager kontrollen för att hantera sådana användarinitierade rörelser.
Kommentarer
Kontrollen WebPartManager använder MoveWebPart metoden för att flytta webPart till en ny plats i samma zon eller i en annan zon. Du kan anropa den här metoden direkt från kod och den anropas även när en användare flyttar en kontroll till en ny position med hjälp av olika alternativ i användargränssnittet för webbdelar.
Ett antal villkor måste uppfyllas innan webPart de kan flyttas, och de flesta av dessa anges av objekt som anges i avsnittet Undantag i det här avsnittet. Om webPart den inte fanns i en WebPartZoneBase zon till att börja med kan den inte flyttas till en zon.
När villkoren har uppfyllts sker följande åtgärdssekvens för att flytta webPart:
Metoden OnWebPartMoving genererar WebPartMoving händelsen.
webParttas bort från den aktuella zonen (om det behövs) och läggs till i den nya zonen eller den nya positionen inom den aktuella zonen.Metoden OnWebPartMoved genererar WebPartMoved händelsen.
zoneIndexVarje WebPart kontroll i både ursprungs- och målzonerna återställs för att återspegla den flyttade kontrollen.