EditorPartChrome Klasa

Definicja

Umożliwia deweloperom zastępowanie renderowania tylko dla wybranych sekcji EditorPart kontrolek w EditorZoneBase strefie.

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

Przykłady

W poniższym przykładzie kodu pokazano, jak użyć EditorPartChrome klasy do zastąpienia domyślnego EditorPart renderowania kontrolek w EditorZoneBase strefie.

Przykładowy kod ma trzy części:

  • Kontrolka użytkownika, która umożliwia zmianę trybów wyświetlania na stronie składniki Web Part.

  • Strona sieci Web, która hostuje wszystkie kontrolki w przykładzie.

  • Klasa zawierająca kod źródłowy dla niestandardowej EditorPartChrome klasy i EditorZoneBase strefy.

Pierwszą częścią przykładu kodu jest kontrolka użytkownika. Kod źródłowy kontrolki użytkownika pochodzi z innego tematu. Aby ten przykład kodu działał, należy uzyskać plik ascx dla kontrolki użytkownika z przewodnika: zmiana trybów wyświetlania w temacie składniki Web Part Page i umieścić plik w tym samym folderze co strona aspx w tym przykładzie kodu.

Drugą częścią przykładu jest strona sieci Web. Należy pamiętać, że w górnej części pliku znajduje Register się dyrektywa umożliwiająca zarejestrowanie skompilowanego składnika i prefiksu tagu. Zwróć również uwagę, że strona odwołuje się do strefy edytora niestandardowego przy użyciu elementu <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>

Trzecia część przykładu zawiera implementację niestandardowej części edytora— strefa części chrome i editor part. MyEditorZoneEditorZone rozszerza i zastępuje CreateEditorPartChrome w celu zwrócenia niestandardowego edytora części chrome. MyEditorPartChrome zmienia kolor tła kontrolki części edytora w metodzie CreateEditorPartChromeStyle . Kolor tła strefy jest zmieniany w metodzie PerformPreRender , a tekst jest dodawany do części edytora w metodzie 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);
        }
    }
}
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

Uwagi

Chrome odwołuje się do elementów peryferyjnego interfejsu użytkownika (UI), które zawierają każdą składniki Web Part kontrolę lub kontrolę serwera zawartą w strefie. Chrome kontrolki zawiera jej obramowanie, pasek tytułu oraz ikony, tekst tytułu i menu czasowników wyświetlane na pasku tytułu. Wygląd chromu jest ustawiany na poziomie strefy i ma zastosowanie do wszystkich kontrolek w strefie.

Zestaw kontrolek składniki Web Part używa EditorPartChrome klasy do renderowania elementu chrome dla EditorPart kontrolek. Ponadto ta klasa umożliwia deweloperom dostosowywanie renderowania dowolnych EditorPart kontrolek w EditorZoneBase strefie. Można na przykład zastąpić metodę CreateEditorPartChromeStyle , aby dostosować określone atrybuty stylu zdefiniowane w EditorZoneBase strefie.

Klasa EditorPartChrome zawiera kilka ważnych metod, które są przydatne, gdy chcesz zastąpić renderowanie EditorPart kontrolek. Jednym z nich jest EditorPartChrome konstruktor używany podczas zastępowania CreateEditorPartChrome metody w klasie niestandardowej EditorZoneBase w celu utworzenia wystąpienia obiektu niestandardowego EditorPartChrome . Inną przydatną metodą jest RenderPartContents metoda , której można użyć do kontrolowania renderowania obszaru zawartości kontrolek w strefie (w przeciwieństwie do elementów chrome, takich jak nagłówki, stopki i paski tytułu). Na koniec, jeśli chcesz uzyskać pełną kontrolę programową nad wszystkimi aspektami renderowania EditorPart kontrolek, możesz zastąpić metodę RenderEditorPart .

Uwagi dotyczące dziedziczenia

Jeśli dziedziczysz z EditorPartChrome klasy, musisz utworzyć dostosowaną EditorZone strefę, aby zwrócić dostosowaną EditorPartChrome klasę. W sekcji Przykład tej klasy omówiono sposób tworzenia dostosowanej EditorZone strefy w celu zwrócenia dostosowanej EditorPartChrome klasy

Konstruktory

EditorPartChrome(EditorZoneBase)

Inicjuje nowe wystąpienie klasy EditorPartChrome.

Właściwości

Zone

Pobiera odwołanie do skojarzonej EditorZoneBase strefy.

Metody

CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Tworzy obiekt stylu, który dostarcza atrybuty stylu dla każdej EditorPart kontrolki renderowanej przez EditorPartChrome obiekt.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
PerformPreRender()

Wykonuje zadania, które należy wykonać przed renderowaniem EditorPart kontrolek.

RenderEditorPart(HtmlTextWriter, EditorPart)

Renderuje pełną EditorPart kontrolkę ze wszystkimi jej sekcjami.

RenderPartContents(HtmlTextWriter, EditorPart)

Renderuje główny obszar zawartości kontrolki EditorPart , z wyłączeniem nagłówka i stopki.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy