EditorPartChrome Klasse

Definition

Ermöglicht Entwicklern das Überschreiben des Renderings nur für die ausgewählten Abschnitte von EditorPart Steuerelementen in einer EditorZoneBase Zone.

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die EditorPartChrome Klasse zum Überschreiben des Standardrenderings von EditorPart Steuerelementen in einer EditorZoneBase Zone verwendet wird.

Das Codebeispiel enthält 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. Damit dieses Codebeispiel funktioniert, müssen Sie die ASCX-Datei für das Benutzersteuerelement aus der exemplarischen Vorgehensweise abrufen: Ändern von Anzeigemodi in einem Webpart-Seitenthema und Platzieren der Datei im selben Ordner wie die .aspx Seite in diesem Codebeispiel.

Der zweite Teil des Beispiels ist die Webseite. Beachten Sie, dass sich oben in der Datei eine Register Direktive befindet, 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 der Benutzerdefinierten Editorteil-Chrom- und Editorteilzone. MyEditorZone erweitert EditorZone und überschreibt CreateEditorPartChrome , um das Chrom des benutzerdefinierten Editorteils zurückzugeben. MyEditorPartChrome ändert die Hintergrundfarbe des Editorteil-Steuerelements in der CreateEditorPartChromeStyle Methode. Die Hintergrundfarbe der Zone wird in der PerformPreRender Methode geändert, und text wird dem Editorteil in der 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 Ui-Elemente (Peripheriebenutzeroberflächen), die jedes Webpart-Steuerelement oder Serversteuerelement in einer Zone framen. Das Chrom für ein Steuerelement enthält seinen Rahmen, seine Titelleiste und die Symbole, Titeltext und Verbenmenü, die in der Titelleiste angezeigt werden. Die Darstellung des Chroms wird auf Zonenebene festgelegt und gilt für alle Steuerelemente in der Zone.

Der Webpart-Steuerelementsatz verwendet die EditorPartChrome Klasse zum Rendern des Chroms für EditorPart Steuerelemente. Darüber hinaus bietet diese Klasse Entwicklern die Möglichkeit, das Rendering von Steuerelementen EditorPart in einer EditorZoneBase Zone anzupassen. Sie können die CreateEditorPartChromeStyle Methode beispielsweise überschreiben, um bestimmte Formatattribute anzupassen, die 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 überschreiben möchten. Einer ist der EditorPartChrome Konstruktor, den Sie verwenden, wenn Sie die CreateEditorPartChrome Methode in einer benutzerdefinierten EditorZoneBase Klasse überschreiben, um eine Instanz Ihres benutzerdefinierten 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 Chromeelementen wie Kopfzeilen, Fußzeilen und Titelleisten). Wenn Sie schließlich die vollständige programmgesteuerte Kontrolle über alle Aspekte des Renderns der EditorPart Steuerelemente wünschen, können Sie die RenderEditorPart Methode überschreiben.

Hinweise für Vererber

Wenn Sie von der EditorPartChrome Klasse erben, müssen Sie eine benutzerdefinierte Zone erstellen, um Ihre angepasste EditorZoneEditorPartChrome Klasse zurückzugeben. Im Abschnitt "Beispiel" dieser Klassenübersicht wird veranschaulicht, wie sie eine angepasste Zone erstellen, um eine benutzerdefinierte EditorZoneEditorPartChrome Klasse zurückzugeben.

Konstruktoren

Name Beschreibung
EditorPartChrome(EditorZoneBase)

Initialisiert eine neue Instanz der EditorPartChrome-Klasse.

Eigenschaften

Name Beschreibung
Zone

Ruft einen Verweis auf die zugeordnete EditorZoneBase Zone ab.

Methoden

Name Beschreibung
CreateEditorPartChromeStyle(EditorPart, PartChromeType)

Erstellt das Formatvorlagenobjekt, das Formatattribute für jedes EditorPart vom EditorPartChrome Objekt gerenderte Steuerelement bereitstellt.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
PerformPreRender()

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

RenderEditorPart(HtmlTextWriter, EditorPart)

Rendert ein vollständiges EditorPart Steuerelement mit allen zugehörigen Abschnitten.

RenderPartContents(HtmlTextWriter, EditorPart)

Rendert den Hauptinhaltsbereich eines EditorPart Steuerelements, mit Ausnahme der Kopf- und Fußzeile.

ToString()

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

(Geerbt von Object)

Gilt für: