Syntaxe déclarative des contrôles serveur Web WebPartManager
Mise à jour : novembre 2007
Sert de classe centrale du jeu de contrôles WebPart, gérant tous les contrôles WebPart, les fonctionnalités et les événements qui se produisent sur une page Web.
<asp:WebPartManager
CloseProviderWarning="string"
DeleteWarning="string"
EnableClientScript="True|False"
EnableTheming="True|False"
EnableViewState="True|False"
ExportSensitiveDataWarning="string"
ID="string"
OnAuthorizeWebPart="AuthorizeWebPart event handler"
OnConnectionsActivated="ConnectionsActivated event handler"
OnConnectionsActivating="ConnectionsActivating event handler"
OnDataBinding="DataBinding event handler"
OnDisplayModeChanged="DisplayModeChanged event handler"
OnDisplayModeChanging="DisplayModeChanging event handler"
OnDisposed="Disposed event handler"
OnInit="Init event handler"
OnLoad="Load event handler"
OnPreRender="PreRender event handler"
OnSelectedWebPartChanged="SelectedWebPartChanged event handler"
OnSelectedWebPartChanging="SelectedWebPartChanging event handler"
OnUnload="Unload event handler"
OnWebPartAdded="WebPartAdded event handler"
OnWebPartAdding="WebPartAdding event handler"
OnWebPartClosed="WebPartClosed event handler"
OnWebPartClosing="WebPartClosing event handler"
OnWebPartDeleted="WebPartDeleted event handler"
OnWebPartDeleting="WebPartDeleting event handler"
OnWebPartMoved="WebPartMoved event handler"
OnWebPartMoving="WebPartMoving event handler"
OnWebPartsConnected="WebPartsConnected event handler"
OnWebPartsConnecting="WebPartsConnecting event handler"
OnWebPartsDisconnected="WebPartsDisconnected event handler"
OnWebPartsDisconnecting="WebPartsDisconnecting event handler"
Personalization-Enabled="True|False"
Personalization-InitialScope="User|Shared"
Personalization-ProviderName="string"
runat="server"
SkinID="string"
>
<Personalization
Enabled="True|False"
InitialScope="User|Shared"
ProviderName="string" />
<StaticConnections>
<asp:WebPartConnection
ConsumerConnectionPointID="string"
ConsumerID="string"
ID="string"
ProviderConnectionPointID="string"
ProviderID="string" >
<asp:RowToFieldTransformer
FieldName="string" />
<asp:RowToParametersTransformer
ConsumerFieldNames="string"
ProviderFieldNames="string"/>
</asp:WebPartConnection>
</StaticConnections>
</asp:WebPartManager>
Notes
Le contrôle WebPartManager agit en tant que pivot ou le centre de contrôle d'une application WebPart. Il ne doit y avoir qu'une seule et unique instance du contrôle WebPartManager sur chaque page qui utilise des contrôles WebPart et elle doit être placée avant que tous les contrôles de zone ne soient placés. Comme avec la plupart des aspects des applications WebPart, le contrôle WebPartManager est uniquement utilisé avec des utilisateurs authentifiés. De plus, ses fonctionnalités sont presque uniquement utilisées avec les contrôles serveur qui résident dans les zones WebPart qui héritent de la classe WebZone. Les serveurs contrôle qui résident sur une page en dehors de ces zones peut avoir des fonctionnalités WebPart très réduites ou une interaction avec le contrôle WebPartManager.
Pour plus d'informations sur les contrôles WebPartManager et WebPart, consultez Contrôles WebPart ASP.NET.
Exemple
L'exemple de code suivant montre comment utiliser de manière déclarative le contrôle WebPartManager dans un scénario WebParts utilisant le contrôle Calendar. La page Web permet à un utilisateur de passer en mode édition pour modifier certains aspects du contrôle Calendar. Le bouton Modifier l'étendue fait basculer la page en mode portée de personnalisation partagée ou utilisateur. Les boutons Mode édition et Mode de navigation font basculer la page dans le mode d'affichage approprié. Notez que dans la section de la balise <script> du fichier, deux des méthodes qui gèrent des événements utilisent la propriété Personalization pour accéder aux membres utiles de l'objet sous-jacent. Spécifiquement, ces méthodes utilisent la méthode ToggleScope et la propriété Scope sur l'objet auquel on accède par le biais de la propriété Personalization.
Pour que l'exemple de code puisse s'exécuter, vous devez également autoriser un ou plusieurs utilisateurs à personnaliser des pages dans la portée partagée. Pour cela, ajoutez une entrée au fichier Web.config, dans webParts, élément (Schéma des paramètres ASP.NET).
<%@ Page Language="VB" %>
<!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)
If ((mgr1.Personalization.Scope = PersonalizationScope.User) _
And (mgr1.Personalization.CanEnterSharedScope)) Then
mgr1.Personalization.ToggleScope()
ElseIf (mgr1.Personalization.Scope = PersonalizationScope.Shared) Then
mgr1.Personalization.ToggleScope()
Else
'If the user cannot enter shared scope you may want
' to notify them on the page.
End If
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
mgr1.DisplayMode = WebPartManager.EditDisplayMode
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
mgr1.DisplayMode = WebPartManager.BrowseDisplayMode
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As CommandEventArgs)
Label1.Text = "Scope is: " _
+ mgr1.Personalization.Scope.ToString()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Web Parts Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:LoginName id="LoginName1" runat="server" />
<asp:WebPartManager id="mgr1" runat="server">
<Personalization InitialScope="Shared" Enabled="True" />
</asp:WebPartManager>
<asp:WebPartZone id="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Calendar id="Calendar1" runat="server" />
</ZoneTemplate>
<CloseVerb Text="Close This Part" />
<MinimizeVerb Text="Minimize This Part" />
<EditVerb Text="Edit This Part" />
</asp:WebPartZone>
<asp:EditorZone id="EditorZone1" runat="server">
<ZoneTemplate>
<asp:LayoutEditorPart HorizontalAlign="Center" id="Layout1" runat="server" Title="My Custom Layout" />
<asp:AppearanceEditorPart id="AppearanceEditorPart1"
runat="server" BackColor="LightGray" />
<asp:BehaviorEditorPart id="BehaviorEditorPart1"
runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<hr />
<asp:Button id="Button1" runat="server" Text="Toggle Scope" OnClick="Button1_Click" />
<asp:Button id="Button2" runat="server" Text="Edit Mode" OnClick="Button2_Click" />
<asp:Button id="Button3" runat="server" Text="Browse Mode" OnClick="Button3_Click" />
<br />
<asp:Label id="Label1" runat="server" Text="" />
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!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)
{
if ((mgr1.Personalization.Scope == PersonalizationScope.User)
&& (mgr1.Personalization.CanEnterSharedScope))
{
mgr1.Personalization.ToggleScope();
}
else if (mgr1.Personalization.Scope ==
PersonalizationScope.Shared)
{
mgr1.Personalization.ToggleScope();
}
else
{
// If the user cannot enter shared scope you may want
// to notify them on the page.
}
}
protected void Button2_Click(object sender, EventArgs e)
{
mgr1.DisplayMode = WebPartManager.EditDisplayMode;
}
protected void Button3_Click(object sender, EventArgs e)
{
mgr1.DisplayMode = WebPartManager.BrowseDisplayMode;
}
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Scope is: "
+ mgr1.Personalization.Scope.ToString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="head1" runat="server">
<title>Web Parts Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:LoginName id="LoginName1" runat="server" />
<asp:WebPartManager id="mgr1" runat="server">
<Personalization InitialScope="Shared" Enabled="True" />
</asp:WebPartManager>
<asp:WebPartZone id="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Calendar id="Calendar1" runat="server" />
</ZoneTemplate>
<CloseVerb Text="Close This Part" />
<MinimizeVerb Text="Minimize This Part" />
<EditVerb Text="Edit This Part" />
</asp:WebPartZone>
<asp:EditorZone id="EditorZone1" runat="server">
<ZoneTemplate>
<asp:LayoutEditorPart HorizontalAlign="Center" id="Layout1" runat="server" Title="My Custom Layout" />
<asp:AppearanceEditorPart id="AppearanceEditorPart1"
runat="server" BackColor="LightGray" />
<asp:BehaviorEditorPart id="BehaviorEditorPart1"
runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<hr />
<asp:Button id="Button1" runat="server" Text="Toggle Scope" OnClick="Button1_Click" />
<asp:Button id="Button2" runat="server" Text="Edit Mode" OnClick="Button2_Click" />
<asp:Button id="Button3" runat="server" Text="Browse Mode" OnClick="Button3_Click" />
<br />
<asp:Label id="Label1" runat="server" Text="" />
</div>
</form>
</body>
</html>