Cette documentation est archivée et n’est pas conservée.

EditorPartChrome, classe

Permet aux développeurs de substituer le rendu uniquement pour les sections sélectionnées de contrôles EditorPart dans une zone EditorZoneBase.

Espace de noms: System.Web.UI.WebControls.WebParts
Assembly : System.Web (dans system.web.dll)

public class EditorPartChrome
public class EditorPartChrome
public class EditorPartChrome
Non applicable.

Le chrome fait référence aux éléments d'interface utilisateur périphériques qui encadrent chaque contrôle WebPart ou contrôle serveur contenu dans une zone. Le chrome d'un contrôle inclut sa bordure, sa barre de titre ainsi que les icônes, le texte de titre et le menu des verbes qui apparaissent dans la barre de titre. L'apparence du chrome est définie au niveau de la zone et s'applique à tous les contrôles dans la zone.

Le jeu de contrôles WebPart utilise la classe EditorPartChrome pour restituer le chrome pour les contrôles EditorPart. En outre, cette classe permet aux développeurs de personnaliser le rendu de tous les contrôles EditorPart dans une zone EditorZoneBase. Par exemple, vous pouvez substituer la méthode CreateEditorPartChromeStyle pour personnaliser des attributs de style spécifiques définis dans la zone EditorZoneBase.

La classe EditorPartChrome contient plusieurs méthodes importantes qui sont utiles lorsque vous souhaitez substituer le rendu des contrôles EditorPart. L'une d'elles est le constructeur EditorPartChrome que vous utilisez lorsque vous substituez la méthode CreateEditorPartChrome dans une classe EditorZoneBase personnalisée pour créer une instance de votre objet EditorPartChrome personnalisé. Une autre méthode utile est la méthode RenderPartContents que vous pouvez utiliser pour contrôler le rendu de la zone de contenu des contrôles dans une zone (par opposition aux éléments du chrome tels que les en-têtes, pieds de page et barres de titre). Enfin, si vous souhaitez contrôler par programmation tous les aspects du rendu des contrôles EditorPart, vous pouvez substituer la méthode RenderEditorPart.

Remarques à l'attention des implémenteurs : Si vous héritez de la classe EditorPartChrome, vous devez créer une zone EditorZone personnalisée pour retourner votre classe EditorPartChrome personnalisée. La section Exemple de cette vue d'ensemble de la classe montre comment créer une zone EditorZone personnalisée pour retourner une classe EditorPartChrome personnalisée.

L'exemple de code suivant montre comment utiliser la classe EditorPartChrome pour substituer le rendu par défaut des contrôles EditorPart dans une zone EditorZoneBase.

L'exemple de code se compose de trois parties :

  • Contrôle utilisateur qui vous permet de modifier les modes d'affichage d'une page WebPart.

  • Page Web qui héberge tous les contrôles de l'exemple.

  • Classe qui contient le code source pour une classe EditorPartChrome et une zone EditorZoneBase personnalisées.

La première partie de l'exemple de code est le contrôle utilisateur. Le code source du contrôle utilisateur provient d'une autre rubrique. Pour que cet exemple de code fonctionne, vous devez chercher le fichier .ascx du contrôle utilisateur dans la rubrique Procédure pas à pas : modification des modes d'affichage sur une page WebPart et placer ce fichier dans le même dossier que la page .aspx de cet exemple.

La seconde partie de l'exemple est la page Web. Notez qu'il existe une directive Register en haut du fichier pour enregistrer le composant compilé et un préfixe de balise. Notez également que la page référence la zone Éditeur personnalisée au moyen de l'élément <aspSample:MyEditorZone>.

<%@ Page Language="C#" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" %>
<%@ 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">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
  <title>Web Parts Page</title>
</head>
<body>
  <h1>Web Parts Demonstration Page</h1>
  <form runat="server" id="form1">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuCS runat="server" ID="DisplayModeMenu" />
  <br />
  <table cellspacing="0" cellpadding="0" border="0">
    <tr>
      <td valign="top">
    <asp:webpartzone id="SideBarZone" runat="server" 
        headertext="Sidebar">
        <zonetemplate>
        </zonetemplate>
      </asp:webpartzone>
      <aspSample:MyEditorZone ID="EditorZone1" runat="server">
      <ZoneTemplate>
        <asp:AppearanceEditorPart ID="AppearanceEditorPart1" 
          runat="server" />
        <asp:LayoutEditorPart ID="LayoutEditorPart1" 
          runat="server" />
      </ZoneTemplate>
    </aspSample:MyEditorZone>
      </td>
      <td valign="top">
    <asp:webpartzone id="MainZone" runat="server" headertext="Main">
         <zonetemplate>
        <asp:label id="contentPart" runat="server" title="Content">
              <h2>Welcome to My Home Page</h2>
              <p>Use links to visit my favorite sites!</p>
            </asp:label>
         </zonetemplate>
       </asp:webpartzone>
      </td>
      <td valign="top">
      </td>
    </tr>
  </table>
  </form>
</body>
</html>

La troisième partie de l'exemple contient l'implémentation du chrome EditorPart personnalisé et de la zone EditorPart. MyEditorZone étend EditorZone et substitue CreateEditorPartChrome pour retourner le chrome EditorPart personnalisé. MyEditorPartChrome modifie la couleur d'arrière-plan du contrôle EditorPart dans la méthode CreateEditorPartChromeStyle. La couleur d'arrière-plan de la zone est modifiée dans la méthode PerformPreRender et le texte est ajouté à EditorPart dans la méthode RenderPartContents.

namespace Samples.AspNet.CS.Controls
{

    [AspNetHostingPermission(SecurityAction.Demand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    public class MyEditorPartChrome : EditorPartChrome
    {
        public MyEditorPartChrome(EditorZoneBase zone)
            : base(zone)
        {

        }
        
        protected override Style CreateEditorPartChromeStyle(EditorPart editorPart, PartChromeType chromeType)
        {
            Style editorStyle = base.CreateEditorPartChromeStyle(editorPart, chromeType);
            editorStyle.BackColor = Color.Bisque;
            return editorStyle;
        }

        public override void PerformPreRender()
        {
            Style zoneStyle = new Style();
            zoneStyle.BackColor = Color.Cornsilk;

            Zone.Page.Header.StyleSheet.RegisterStyle(zoneStyle, null);
            Zone.MergeStyle(zoneStyle);
        }

        protected override void RenderPartContents(HtmlTextWriter writer, EditorPart editorPart)
        {
            writer.AddStyleAttribute("color", "red");
            writer.RenderBeginTag("p");
            writer.Write("Apply all changes");
            writer.RenderEndTag();
            editorPart.RenderControl(writer);
        }

        public override void RenderEditorPart(HtmlTextWriter writer, EditorPart editorPart)
        {
            base.RenderEditorPart(writer, editorPart);
        }
    }

    [AspNetHostingPermission(SecurityAction.Demand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    public class MyEditorZone : EditorZone
    {
        protected override EditorPartChrome CreateEditorPartChrome()
        {
            return new MyEditorPartChrome(this);
        }
    }
}

  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : LinkDemand ; valeur d'autorisation : Minimal
  • AspNetHostingPermission  pour opérer dans un environnement hébergé. Valeur de demande : InheritanceDemand ; valeur d'autorisation : Minimal

System.Object
  System.Web.UI.WebControls.WebParts.EditorPartChrome

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 est pris en charge sur Windows Vista, Microsoft Windows XP SP2 et Windows Server 2003 SP1.

.NET Framework

Prise en charge dans : 3.0, 2.0
Afficher: