CatalogPartChrome Classe

Définition

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

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Héritage
CatalogPartChrome

Exemples

L’exemple de code suivant montre comment utiliser la CatalogPartChrome classe pour remplacer le rendu par défaut des CatalogPart contrôles dans une CatalogZoneBase zone.

L’exemple de code comporte trois parties :

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

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

  • Classe qui contient le code source d’une classe et d’une CatalogZoneBase zone personnaliséesCatalogPartChrome.

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 obtenir le fichier .ascx pour le contrôle utilisateur à partir de la rubrique Procédure pas à pas : modification des modes d’affichage sur une page de composants WebPart , et placer le fichier dans le même dossier que la page .aspx dans cet exemple de code.

La deuxième partie de l’exemple est la page Web. Notez qu’il existe une Register directive en haut du fichier pour inscrire le composant compilé et un préfixe de balise. Notez également que la page fait référence à la zone de catalogue personnalisée à l’aide de l’élément <aspSample:MyCatalogZone>.

<%@ 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:MyCatalogZone ID="CatalogZone1" runat="server">
      <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalog" runat="server" />
      </ZoneTemplate>
    </aspSample:MyCatalogZone>
      </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>
<%@ Page Language="VB" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.VB.Controls" %>
<%@ 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">
<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:DisplayModeMenuVB 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:MyCatalogZone ID="CatalogZone1" runat="server">
      <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalog" runat="server" />
      </ZoneTemplate>
    </aspSample:MyCatalogZone>
      </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 du composant de catalogue personnalisé et de la zone de partie de catalogue. MyCatalogZoneCatalogZone étend et remplace CreateCatalogPartChrome pour renvoyer le composant de catalogue personnalisé chrome. MyCatalogPartChrome modifie la couleur d’arrière-plan du contrôle catalogue dans la CreateCatalogPartChromeStyle méthode . La couleur d’arrière-plan de la zone est modifiée dans la méthode et le PerformPreRender texte est ajouté à la partie catalogue dans la RenderPartContents méthode.

namespace Samples.AspNet.CS.Controls
{

    /// <summary>
    /// Summary description for source
    /// </summary>
    public class MyCatalogPartChrome : CatalogPartChrome
    {
        public MyCatalogPartChrome(CatalogZoneBase zone)
            : base(zone)
        {
        }

        protected override Style  CreateCatalogPartChromeStyle(CatalogPart catalogPart, PartChromeType chromeType)
        {
            Style catalogStyle = base.CreateCatalogPartChromeStyle(catalogPart, chromeType);
            catalogStyle.BackColor = Color.Bisque;
            return catalogStyle;
        }

        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, CatalogPart catalogPart)
        {
            writer.AddStyleAttribute("color", "red");
            writer.RenderBeginTag("p");
            writer.Write("Apply all changes");
            writer.RenderEndTag();
            catalogPart.RenderControl(writer);
        }

        public override void  RenderCatalogPart(HtmlTextWriter writer, CatalogPart catalogPart)
        {
            base.RenderCatalogPart(writer, catalogPart);
        }
    }

    public class MyCatalogZone : CatalogZone
    {
        protected override CatalogPartChrome  CreateCatalogPartChrome()
        {
            return new MyCatalogPartChrome(this);
        }
    }
}
Namespace Samples.AspNet.VB.Controls


    Public Class MyCatalogPartChrome
        Inherits CatalogPartChrome

        Public Sub New(ByVal zone As CatalogZoneBase)
            MyBase.New(zone)
        End Sub

        Protected Overrides Function CreateCatalogPartChromeStyle(ByVal catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart, ByVal chromeType As System.Web.UI.WebControls.WebParts.PartChromeType) As System.Web.UI.WebControls.Style
            Dim editorStyle As Style
            editorStyle = MyBase.CreateCatalogPartChromeStyle(catalogPart, chromeType)
            editorStyle.BackColor = Drawing.Color.Bisque
            Return editorStyle
        End Function

        Public Overrides Sub PerformPreRender()
            Dim zoneStyle As Style = New Style
            zoneStyle.BackColor = Drawing.Color.Cornsilk

            Zone.Page.Header.StyleSheet.RegisterStyle(zoneStyle, Nothing)
            Zone.MergeStyle(zoneStyle)
        End Sub

        Protected Overrides Sub RenderPartContents(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart)
            writer.AddStyleAttribute("color", "red")
            writer.RenderBeginTag("p")
            writer.Write("Apply all changes")
            writer.RenderEndTag()
            catalogPart.RenderControl(writer)
        End Sub

        Public Overrides Sub RenderCatalogPart(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart)
            MyBase.RenderCatalogPart(writer, catalogPart)
        End Sub
    End Class

    Public Class MyCatalogZone
        Inherits CatalogZone

        Protected Overrides Function CreateCatalogPartChrome() As System.Web.UI.WebControls.WebParts.CatalogPartChrome
            Return New MyCatalogPartChrome(Me)
        End Function
    End Class
End Namespace

Remarques

Chrome fait référence aux éléments d’interface utilisateur périphérique 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 et les icônes, le texte du titre et le menu verbes qui s’affichent dans la barre de titre. L’apparence du chrome est définie au niveau de la zone et s’applique à tous les contrôles de la zone.

Le jeu de contrôles WebPart utilise la CatalogPartChrome classe pour afficher le chrome des CatalogPart contrôles. En outre, cette classe permet aux développeurs de personnaliser le rendu de tous CatalogPart les contrôles d’une CatalogZoneBase zone. Par exemple, vous pouvez remplacer la CreateCatalogPartChromeStyle méthode pour personnaliser certains attributs de style spécifiques appliqués à la CatalogZoneBase zone.

La CatalogPartChrome classe contient plusieurs méthodes importantes qui sont utiles lorsque vous souhaitez remplacer le rendu des CatalogPart contrôles. L’un est le CatalogPartChrome constructeur, que vous utilisez lorsque vous remplacez la CreateCatalogPartChrome méthode dans une zone personnalisée CatalogZoneBase pour créer une instance de votre objet personnalisé CatalogPartChrome . Une autre méthode utile est la RenderPartContents méthode, 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 chrome tels que les en-têtes, les pieds de page et les barres de titre). Enfin, si vous souhaitez un contrôle par programme complet sur tous les aspects du rendu CatalogPart des contrôles, vous pouvez remplacer la RenderCatalogPart méthode.

Notes pour les héritiers

Si vous héritez de la CatalogPartChrome classe, vous devez créer une zone personnalisée CatalogZone pour renvoyer votre classe personnalisée CatalogPartChrome . La section Exemple de cette vue d’ensemble de la classe montre comment créer une zone personnalisée CatalogZone pour retourner une classe personnalisée CatalogPartChrome .

Constructeurs

CatalogPartChrome(CatalogZoneBase)

Initialise une nouvelle instance de la classe CatalogPartChrome.

Propriétés

Zone

Obtient une référence à la zone CatalogZoneBase associée.

Méthodes

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Crée l'objet de style qui fournit des attributs de style pour chaque contrôle CatalogPart restitué par l'objet CatalogPartChrome.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
PerformPreRender()

Exécute des tâches qui doivent être effectuées avant le rendu des contrôles CatalogPart.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Génère le rendu d'un contrôle CatalogPart complet avec toutes ses sections.

RenderPartContents(HtmlTextWriter, CatalogPart)

Génère le rendu de la zone de contenu principale d'un contrôle CatalogPart, à l'exclusion de l'en-tête et du pied de page.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi