EditorPartChrome Klass

Definition

Gör det möjligt för utvecklare att åsidosätta återgivningen endast för de valda avsnitten av EditorPart kontroller i en EditorZoneBase zon.

public ref class EditorPartChrome
public class EditorPartChrome
type EditorPartChrome = class
Public Class EditorPartChrome
Arv
EditorPartChrome

Exempel

Följande kodexempel visar hur du använder EditorPartChrome klassen för att åsidosätta standardåtergivningen av EditorPart kontroller i en EditorZoneBase zon.

Kodexemplet har tre delar:

  • En användarkontroll som gör att du kan ändra visningslägen på en webbdelssida.

  • En webbsida som är värd för alla kontroller i exemplet.

  • En klass som innehåller källkoden för en anpassad EditorPartChrome klass och EditorZoneBase zon.

Den första delen av kodexemplet är användarkontrollen. Källkoden för användarkontrollen kommer från ett annat ämne. För att det här kodexemplet ska fungera måste du hämta .ascx-filen för användarkontrollen från avsnittet Genomgång: Ändra visningslägen på en webbdelssida och placera filen i samma mapp som sidan .aspx i det här kodexemplet.

Den andra delen av exemplet är webbsidan. Observera att det finns ett Register direktiv längst upp i filen för att registrera den kompilerade komponenten och ett taggprefix. Observera också att sidan refererar till den anpassade redigeringszonen med elementet <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>

Den tredje delen av exemplet innehåller implementeringen av den anpassade redigeringsdelen chrome och redigerardelszonen. MyEditorZone utökar EditorZone och åsidosätter CreateEditorPartChrome för att returnera den anpassade redigeringsdelen chrome. MyEditorPartChrome ändrar bakgrundsfärgen för redigeringsprogrammets delkontroll i CreateEditorPartChromeStyle -metoden. Bakgrundsfärgen för zonen ändras i PerformPreRender metoden och text läggs till i redigeringsdelen i RenderPartContents metoden.

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

Kommentarer

Chrome refererar till elementen för det perifera användargränssnittet (UI) som ramar in varje webbdelskontroll eller serverkontroll som finns i en zon. Chrome för en kontroll innehåller dess kantlinje, dess namnlist och ikonerna, rubriktexten och verbmenyn som visas i namnlisten. Utseendet på kromet anges på zonnivå och gäller för alla kontroller i zonen.

Kontrolluppsättningen EditorPartChrome Webbdelar använder klassen för att återge chrome för EditorPart kontroller. Dessutom ger den här klassen ett sätt för utvecklare att anpassa renderingen av alla EditorPart kontroller i en EditorZoneBase zon. Du kan till exempel åsidosätta CreateEditorPartChromeStyle metoden för att anpassa vissa specifika formatattribut som definierats i EditorZoneBase zonen.

Klassen EditorPartChrome innehåller flera viktiga metoder som är användbara när du vill åsidosätta återgivningen av EditorPart kontroller. Den ena EditorPartChrome är konstruktorn som du använder när du åsidosätter CreateEditorPartChrome metoden i en anpassad EditorZoneBase klass för att skapa en instans av ditt anpassade EditorPartChrome objekt. En annan användbar metod är metoden RenderPartContents som du kan använda för att styra återgivningen av innehållsområdet för kontroller i en zon (till skillnad från kromelement som sidhuvuden, sidfötter och namnlister). Slutligen kan du åsidosätta metoden om du vill ha fullständig programmatisk kontroll över alla aspekter av återgivningen EditorPart av RenderEditorPart kontrollerna.

Anteckningar till arvingar

Om du ärver från EditorPartChrome klassen måste du skapa en anpassad EditorZone zon för att returnera din anpassade EditorPartChrome klass. Avsnittet Exempel i den här klassöversikten visar hur du skapar en anpassad EditorZone zon för att returnera en anpassad EditorPartChrome klass

Konstruktorer

Name Description
EditorPartChrome(EditorZoneBase)

Initierar en ny instans av EditorPartChrome klassen.

Egenskaper

Name Description
Zone

Hämtar en referens till den associerade EditorZoneBase zonen.

Metoder

Name Description
CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Skapar formatobjektet som tillhandahåller formatattribut för varje EditorPart kontroll som återges av EditorPartChrome objektet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
PerformPreRender()

Utför uppgifter som måste utföras innan återgivningskontroller EditorPart .

RenderEditorPart(HtmlTextWriter, EditorPart)

Renderar en fullständig EditorPart kontroll med alla dess avsnitt.

RenderPartContents(HtmlTextWriter, EditorPart)

Renderar huvudinnehållsområdet för en EditorPart kontroll, exklusive sidhuvud och sidfot.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för