EditorPartChrome Classe

Definizione

Consente agli sviluppatori di eseguire l'override del rendering solo per le sezioni selezionate di EditorPart controlli in una EditorZoneBase zona.

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

Esempio

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

L'esempio di codice ha 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 che contiene il codice sorgente per una classe personalizzata EditorPartChrome e EditorZoneBase una zona.

La prima parte dell'esempio di codice è il controllo utente. Il codice sorgente per il controllo utente proviene da un altro argomento. Per il corretto funzionamento di questo esempio di codice, è necessario ottenere il file con estensione ascx per il controllo utente dall'argomento Procedura dettagliata: Modifica delle modalità di visualizzazione in una pagina web part e inserire 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 all'area dell'editor personalizzata usando l'elemento <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>
<%@ 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: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 terza parte dell'esempio contiene l'implementazione della parte dell'editor personalizzata chrome e della zona della parte dell'editor. MyEditorZone estende EditorZone ed esegue l'override CreateEditorPartChrome per restituire il riquadro della parte dell'editor personalizzato. MyEditorPartChrome modifica il colore di sfondo del controllo della parte dell'editor nel CreateEditorPartChromeStyle metodo . Il colore di sfondo della zona viene modificato nel PerformPreRender metodo e il testo viene aggiunto alla parte dell'editor nel RenderPartContents metodo .

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);
        }
    }
}
Namespace Samples.AspNet.VB.Controls


    <AspNetHostingPermission(SecurityAction.Demand, _
      Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
      Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class MyEditorPartChrome
        Inherits EditorPartChrome

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

        Protected Overrides Function CreateEditorPartChromeStyle(ByVal editorPart As System.Web.UI.WebControls.WebParts.EditorPart, ByVal chromeType As System.Web.UI.WebControls.WebParts.PartChromeType) As System.Web.UI.WebControls.Style
            Dim editorStyle As Style
            editorStyle = MyBase.CreateEditorPartChromeStyle(editorPart, 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 editorPart As System.Web.UI.WebControls.WebParts.EditorPart)
            writer.AddStyleAttribute("color", "red")
            writer.RenderBeginTag("p")
            writer.Write("Apply all changes")
            writer.RenderEndTag()
            editorPart.RenderControl(writer)
        End Sub

        Public Overrides Sub RenderEditorPart(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal editorPart As System.Web.UI.WebControls.WebParts.EditorPart)
            MyBase.RenderEditorPart(writer, editorPart)
        End Sub
    End Class


    <AspNetHostingPermission(SecurityAction.Demand, _
      Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
      Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public Class MyEditorZone
        Inherits EditorZone

        Protected Overrides Function CreateEditorPartChrome() As System.Web.UI.WebControls.WebParts.EditorPartChrome
            Return New MyEditorPartChrome(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 riquadro per un controllo include il bordo, la barra del titolo e le icone, il testo del titolo e il menu verbi visualizzati all'interno della barra del titolo. L'aspetto del riquadro viene impostato a livello di zona e si applica a tutti i controlli nella zona.

Il set di controlli Web part usa la EditorPartChrome classe per eseguire il rendering del riquadro per EditorPart i controlli. Inoltre, questa classe consente agli sviluppatori di personalizzare il rendering di tutti EditorPart i controlli in una EditorZoneBase zona. Ad esempio, è possibile eseguire l'override del CreateEditorPartChromeStyle metodo per personalizzare alcuni attributi di stile specifici definiti nella EditorZoneBase zona.

La EditorPartChrome classe contiene diversi metodi importanti utili quando si desidera eseguire l'override del rendering dei EditorPart controlli. Uno è il EditorPartChrome costruttore, che si usa quando si esegue l'override del CreateEditorPartChrome metodo in una classe personalizzata EditorZoneBase per creare un'istanza dell'oggetto personalizzato EditorPartChrome . 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 desidera completare il controllo a livello di codice su tutti gli aspetti del rendering dei EditorPart controlli, è possibile eseguire l'override del RenderEditorPart metodo .

Note per gli eredi

Se si eredita dalla EditorPartChrome classe , è necessario creare una zona personalizzata EditorZone per restituire la classe personalizzata EditorPartChrome . La sezione Esempio di questa panoramica della classe illustra come creare una zona personalizzata per restituire una classe personalizzata EditorZoneEditorPartChrome

Costruttori

Nome Descrizione
EditorPartChrome(EditorZoneBase)

Inizializza una nuova istanza della classe EditorPartChrome.

Proprietà

Nome Descrizione
Zone

Ottiene un riferimento alla zona associata EditorZoneBase .

Metodi

Nome Descrizione
CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Crea l'oggetto style che fornisce gli attributi di stile per ogni EditorPart controllo di cui viene eseguito il rendering dall'oggetto EditorPartChrome .

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 il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
PerformPreRender()

Esegue attività che devono essere eseguite prima dei controlli di rendering EditorPart .

RenderEditorPart(HtmlTextWriter, EditorPart)

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

RenderPartContents(HtmlTextWriter, EditorPart)

Esegue il rendering dell'area di contenuto principale di un EditorPart controllo, escludendo l'intestazione e il piè di pagina.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a