Condividi tramite


CatalogPartChrome Classe

Definizione

Consente agli sviluppatori di eseguire l'override del rendering solo per sezioni selezionate di controlli CatalogPart in una zona CatalogZoneBase.

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Ereditarietà
CatalogPartChrome

Esempio

Nell'esempio di codice seguente viene illustrato come usare la classe per eseguire l'override CatalogPartChrome del rendering predefinito dei CatalogPart controlli in una CatalogZoneBase zona.

L'esempio di codice include tre parti:

  • Controllo utente che consente di modificare le modalità di visualizzazione in una pagina web part.

  • Pagina Web che ospita tutti i controlli nell'esempio.

  • Classe contenente il codice sorgente per una classe e CatalogZoneBase una zona personalizzataCatalogPartChrome.

La prima parte dell'esempio di codice è il controllo utente. Il codice sorgente per il controllo utente proviene da un altro argomento. Per il funzionamento di questo esempio di codice, è necessario ottenere il file ascx per il controllo utente dall'argomento Procedura dettagliata: Modifica delle modalità di visualizzazione in una pagina web part e posizionare il file nella stessa cartella della pagina .aspx in questo esempio di codice.

La seconda parte dell'esempio è la pagina Web. Si noti che nella parte superiore del file è presente una Register direttiva per registrare il componente compilato e un prefisso di tag. Si noti anche che la pagina fa riferimento alla zona del catalogo personalizzata usando l'elemento <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 terza parte dell'esempio contiene l'implementazione della parte del catalogo personalizzata chrome e della parte del catalogo. MyCatalogZone estende CatalogZone e esegue l'override CreateCatalogPartChrome per restituire il chrome della parte del catalogo personalizzato. MyCatalogPartChrome modifica il colore di sfondo del controllo catalogo nel CreateCatalogPartChromeStyle metodo. Il colore di sfondo della zona viene modificato nel PerformPreRender metodo e il testo viene aggiunto alla parte del catalogo nel RenderPartContents metodo .

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

Commenti

Chrome fa riferimento agli elementi dell'interfaccia utente periferica che incorniciano ogni controllo web part o controllo server contenuto in una zona. Il chrome per un controllo include il bordo, la barra del titolo e le icone, il testo del titolo e i verbi che vengono visualizzati all'interno della barra del titolo. L'aspetto del chrome è impostato a livello di zona e si applica a tutti i controlli della zona.

Il set di controlli Web part usa la classe per eseguire il CatalogPartChrome rendering del chrome per CatalogPart i controlli. Inoltre, questa classe consente agli sviluppatori di personalizzare il rendering di tutti CatalogPart i controlli in una CatalogZoneBase zona. Ad esempio, è possibile eseguire l'override del CreateCatalogPartChromeStyle metodo per personalizzare alcuni attributi di stile specifici applicati alla CatalogZoneBase zona.

La CatalogPartChrome classe contiene diversi metodi importanti utili quando si vuole eseguire l'override del rendering dei CatalogPart controlli. Uno è il costruttore che si usa quando si esegue l'override del CatalogPartChromeCreateCatalogPartChrome metodo in una zona personalizzata CatalogZoneBase per creare un'istanza dell'oggetto personalizzato CatalogPartChrome . Un altro metodo utile è il RenderPartContents metodo che è possibile usare per controllare il rendering dell'area del contenuto dei controlli in una zona (anziché elementi chrome, ad esempio intestazioni, piè di pagina e barre del titolo). Infine, se si vuole completare il controllo programmatico su tutti gli aspetti del rendering dei CatalogPart controlli, è possibile eseguire l'override del RenderCatalogPart metodo.

Note per gli eredi

Se si eredita dalla CatalogPartChrome classe, è necessario creare una zona personalizzata per restituire la classe personalizzata CatalogZoneCatalogPartChrome . La sezione Esempio per questa panoramica della classe illustra come creare una zona personalizzata CatalogZone per restituire una classe personalizzata CatalogPartChrome .

Costruttori

CatalogPartChrome(CatalogZoneBase)

Inizializza una nuova istanza della classe CatalogPartChrome.

Proprietà

Zone

Ottiene un riferimento alla zona CatalogZoneBase associata.

Metodi

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Crea l'oggetto stile che fornisce gli attributi di stile per ciascun controllo CatalogPart di cui è stato eseguito il rendering tramite l'oggetto CatalogPartChrome.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
PerformPreRender()

Esegue operazioni che devono essere effettuate prima del rendering dei controlli CatalogPart.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Esegue il rendering di un controllo CatalogPart completo con tutte le relative sezioni.

RenderPartContents(HtmlTextWriter, CatalogPart)

Esegue il rendering dell'area di contenuto principale di un controllo CatalogPart, ad eccezione dell'intestazione e del piè di pagina.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche