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 WebPart ou contrôle serveur d'une zone WebPartZoneBase à l'autre ou à 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
WebPartZoneBase cible vers laquelle webPart
est déplacé.
- zoneIndex
- Int32
Un entier qui indique l'index de webPart
par rapport aux autres contrôles de zone
.
Exceptions
webPart
n'est pas contenu dans la collection Controls du contrôle WebPartManager.
- ou -
zone
n'est pas contenu dans la collection Zones du contrôle WebPartManager.
- ou -
La zone référencée par la propriété Zone du contrôle webPart
est null
, ce qui signifie que webPart
n'est pas contenu actuellement 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 à une autre.
L’exemple de code comporte trois parties :
Contrôle utilisateur permettant de 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 permettant de modifier les modes d’affichage. Vous pouvez obtenir le code source du contrôle utilisateur à partir de la section Exemple de la 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 le composant WebPart de 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 obligatoire, car le premier paramètre de la MoveWebPart méthode nécessite un WebPart contrôle, alors 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 et 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 s’effectue 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 WebPartManager contrôle pour gérer ces déplacements initiés par l’utilisateur.
Remarques
Le WebPartManager contrôle utilise la MoveWebPart méthode pour se déplacer webPart
vers un nouvel emplacement dans la même zone ou dans une autre zone. Vous pouvez appeler cette méthode directement à partir du code. 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és, et la plupart d’entre elles sont indiquées par les éléments répertoriés dans la section Exceptions de cette rubrique. Si 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 déplacer webPart
:
La méthode OnWebPartMoving déclenche l'événement WebPartMoving.
webPart
est supprimé de sa zone actuelle (si nécessaire) et ajouté à sa nouvelle zone ou à sa nouvelle position dans sa zone actuelle.La méthode OnWebPartMoved déclenche l'événement WebPartMoved.
Le
zoneIndex
de chaque WebPart contrôle dans les zones d’origine et de destination est réinitialisé pour refléter le contrôle déplacé.