Freigeben über


EditorPartChrome Klasse

Definition

Ermöglicht Entwicklern, das Rendering ausschließlich für die ausgewählten Abschnitte von EditorPart-Steuerelementen in einer EditorZoneBase-Zone zu überschreiben.

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die EditorPartChrome Klasse verwenden, um das Standardrendering von EditorPart Steuerelementen in einer EditorZoneBase Zone außer Kraft zu setzen.

Das Codebeispiel verfügt über drei Teile:

  • Ein Benutzersteuerelement, mit dem Sie Anzeigemodi auf einer Webparts Seite ändern können.

  • Eine Webseite, auf der alle Steuerelemente im Beispiel gehostet werden.

  • Eine Klasse, die den Quellcode für eine benutzerdefinierte EditorPartChrome Klasse und EditorZoneBase Zone enthält.

Der erste Teil des Codebeispiels ist das Benutzersteuerelement. Der Quellcode für das Benutzersteuerelement stammt aus einem anderen Thema. Für dieses Codebeispiel müssen Sie die ASCX-Datei für das Benutzersteuerelement aus der exemplarischen Vorgehensweise abrufen: Ändern von Anzeigemodi in einem Webparts Seitenthema und platzieren Sie die Datei in demselben Ordner wie die ASPX-Seite in diesem Codebeispiel.

Der zweite Teil des Beispiels ist die Webseite. Beachten Sie, dass eine Register Richtlinie am oberen Rand der Datei vorhanden ist, um die kompilierte Komponente und ein Tagpräfix zu registrieren. Beachten Sie außerdem, dass die Seite mithilfe des Elements <aspSample:MyEditorZone>auf die benutzerdefinierte Editorzone verweist.

<%@ 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>

Der dritte Teil des Beispiels enthält die Implementierung des benutzerdefinierten Editorparts chrome und editor part zone. MyEditorZone erweitert EditorZone und außer Kraft gesetzt CreateEditorPartChrome , um den benutzerdefinierten Editorpart chrome zurückzugeben. MyEditorPartChrome ändert die Hintergrundfarbe des Editorpartsteuerelements in der CreateEditorPartChromeStyle Methode. Die Hintergrundfarbe der Zone wird in der Methode geändert, und Text wird dem Editorpart in der PerformPreRender RenderPartContents Methode hinzugefügt.

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

Hinweise

Chrome bezieht sich auf die Elemente der Peripheriebenutzerschnittstelle (UI), die jedes Webparts Steuerelement oder Serversteuerelement in einer Zone framen. Das Chrom für ein Steuerelement enthält seinen Rahmen, seine Titelleiste und das Menü "Titeltext" und "Verben", die in der Titelleiste angezeigt werden. Die Darstellung des Chroms wird auf Zonenebene festgelegt und gilt für alle Steuerelemente in der Zone.

Der Webparts-Steuerelementsatz verwendet die EditorPartChrome Klasse zum Rendern des Chroms für EditorPart Steuerelemente. Darüber hinaus bietet diese Klasse eine Möglichkeit, um das Rendern von EditorPart Steuerelementen in einer EditorZoneBase Zone anzupassen. Sie können beispielsweise die Methode außer Kraft setzen, um bestimmte Formatattribute anzupassen, die CreateEditorPartChromeStyle in der EditorZoneBase Zone definiert sind.

Die EditorPartChrome Klasse enthält mehrere wichtige Methoden, die nützlich sind, wenn Sie das Rendern von EditorPart Steuerelementen außer Kraft setzen möchten. Einer ist der Konstruktor, den Sie verwenden, wenn Sie die EditorPartChrome CreateEditorPartChrome Methode in einer benutzerdefinierten Klasse außer Kraft setzen, um eine Instanz Ihres benutzerdefinierten EditorZoneBase EditorPartChrome Objekts zu erstellen. Eine weitere nützliche Methode ist die Methode, mit der RenderPartContents Sie das Rendern des Inhaltsbereichs von Steuerelementen in einer Zone steuern können (im Gegensatz zu Chromelementen wie Kopfzeilen, Fußzeilen und Titelleisten). Wenn Sie schließlich die programmgesteuerte Kontrolle über alle Aspekte des Renderns der EditorPart Steuerelemente ausführen möchten, können Sie die RenderEditorPart Methode außer Kraft setzen.

Hinweise für Vererber

Wenn Sie von der EditorPartChrome Klasse erben, müssen Sie eine angepasste Zone erstellen, um Ihre angepasste EditorZone EditorPartChrome Klasse zurückzugeben. Der Abschnitt "Beispiel" dieser Klasse veranschaulicht, wie sie eine angepasste Zone erstellen, um eine angepasste EditorZone Klasse zurückzugeben.EditorPartChrome

Konstruktoren

EditorPartChrome(EditorZoneBase)

Initialisiert eine neue Instanz der EditorPartChrome-Klasse.

Eigenschaften

Zone

Ruft einen Verweis auf die zugeordnete EditorZoneBase-Zone ab.

Methoden

CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Erstellt das Stilobjekt, das die Stilattribute für jedes EditorPart-Steuerelement bereitstellt, das vom EditorPartChrome-Objekt gerendert wird.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
PerformPreRender()

Führt Aufgaben aus, die vor dem Rendern von EditorPart-Steuerelementen verarbeitet werden müssen.

RenderEditorPart(HtmlTextWriter, EditorPart)

Gibt ein vollständiges EditorPart-Steuerelement mit allen zugehörigen Bereichen wieder.

RenderPartContents(HtmlTextWriter, EditorPart)

Gibt den Hauptinhaltsbereich eines EditorPart-Steuerelements wieder und schließt Header und Footer vom Rendering aus.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für