WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Déplace un contrôle ou un WebPart contrôle serveur d’une WebPartZoneBase zone vers une autre ou vers une nouvelle position dans la même 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)
Paramètres
- zone
- WebPartZoneBase
Cible WebPartZoneBase vers laquelle webPart il est déplacé.
- zoneIndex
- Int32
Entier qui indique l’index de webPart par rapport à d’autres contrôles dans zone.
Exceptions
webPart n’est pas contenu dans la Controls collection du WebPartManager contrôle.
- ou -
zone n’est pas contenu dans la Zones collection du WebPartManager contrôle.
- ou -
La zone référencée par la webPart propriété du Zone contrôle est null, ce qui signifie qu’elle webPart n’est pas actuellement contenue dans une zone.
webPart ou zone est null.
zoneIndex est inférieur à zéro.
Exemples
L’exemple de code suivant montre comment appeler la MoveWebPart méthode directement à partir du code pour déplacer un contrôle d’une WebPart zone vers une autre.
L’exemple de code comporte trois parties :
Contrôle utilisateur pour modifier les modes d’affichage.
Page Web pour héberger les contrôles.
Explication de l’exécution de l’exemple de code.
La première partie de l’exemple de code est le contrôle utilisateur pour modifier les modes d’affichage. Vous pouvez obtenir le code source du contrôle utilisateur à partir de la section Exemple de vue d’ensemble de la WebPartManager classe. Pour plus d’informations sur les modes d’affichage et le fonctionnement du contrôle utilisateur, consultez Procédure pas à pas : modification des modes d’affichage sur une page de composants WebPart.
La deuxième partie de l’exemple est une page Web qui contient deux zones, chacune contenant deux contrôles serveur. Lorsqu’un utilisateur clique sur le bouton Déplacer un composant WebPart sur la page, le code de la Button1_Click méthode déplace un contrôle de la première zone vers une nouvelle position dans la deuxième zone. Notez que le code doit d’abord appeler la GetGenericWebPart méthode pour récupérer l’objet GenericWebPart qui encapsule le list1 contrôle. Cela est nécessaire, car le premier paramètre de la méthode MoveWebPart nécessite un contrôle WebPart, tandis que list1 est un contrôle serveur 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>
Une fois la page chargée, cliquez sur le bouton Déplacer le composant WebPart , puis notez que le contrôle qui contient les liens se déplace vers la position centrale dans la deuxième zone. Ce mouvement du contrôle est effectué par programmation en appelant la MoveWebPart méthode. Vous pouvez également utiliser le contrôle de liste déroulante Mode d’affichage pour basculer la page en mode création et en mode création, vous pouvez faire glisser les contrôles vers différentes zones ou différentes positions au sein de leurs zones. La MoveWebPart méthode est également appelée par le contrôle pour gérer ces déplacements initiés par l’utilisateur WebPartManager .
Remarques
Le WebPartManager contrôle utilise la MoveWebPart méthode pour passer webPart à un nouvel emplacement dans la même zone ou dans une autre zone. Vous pouvez appeler cette méthode directement à partir du code, et elle est également appelée lorsqu’un utilisateur déplace un contrôle vers une nouvelle position à l’aide de différentes options dans l’interface utilisateur des composants WebPart.
Un certain nombre de conditions doivent être remplies avant webPart de pouvoir être déplacées, et la plupart d’entre elles sont indiquées par les éléments répertoriés dans la section Exceptions de cette rubrique. S’il webPart n’était pas contenu dans une WebPartZoneBase zone pour commencer, il ne peut pas être déplacé dans une zone.
Une fois les conditions remplies, la séquence d’actions suivante se produit pour se déplacer webPart:
La OnWebPartMoving méthode déclenche l’événement WebPartMoving .
webPartest supprimé de sa zone actuelle (si nécessaire) et ajouté à sa nouvelle zone ou à sa nouvelle position dans sa zone actuelle.La OnWebPartMoved méthode déclenche l’événement WebPartMoved .
zoneIndexChaque WebPart contrôle dans les zones d’origine et de destination est réinitialisé pour refléter le contrôle déplacé.