CatalogPartChrome Klasse

Definition

Ermöglicht Entwicklern, das Rendern ausschließlich für die ausgewählten Bereiche von CatalogPart-Steuerelementen in einer CatalogZoneBase-Zone zu überschreiben.

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

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die CatalogPartChrome -Klasse verwenden, um das Standardrendering von CatalogPart Steuerelementen in einer CatalogZoneBase Zone zu überschreiben.

Das Codebeispiel umfasst drei Teile:

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

  • Eine Webseite, die alle Steuerelemente im Beispiel hostet.

  • Eine Klasse, die den Quellcode für eine benutzerdefinierte CatalogPartChrome Klasse und CatalogZoneBase 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 dem Thema Exemplarische Vorgehensweise: Ändern von Anzeigemodi auf einer Webpartseite abrufen und die Datei im selben Ordner wie die ASPX-Seite in diesem Codebeispiel ablegen.

Der zweite Teil des Beispiels ist die Webseite. Beachten Sie, dass sich am anfang der Datei eine Register Anweisung befindet, um die kompilierte Komponente und ein Tagpräfix zu registrieren. Beachten Sie auch, dass die Seite mithilfe des -Elements <aspSample:MyCatalogZone>auf die benutzerdefinierte Katalogzone 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:MyCatalogZone ID="CatalogZone1" runat="server">
      <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalog" runat="server" />
      </ZoneTemplate>
    </aspSample:MyCatalogZone>
      </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:MyCatalogZone ID="CatalogZone1" runat="server">
      <ZoneTemplate>
          <asp:ImportCatalogPart ID="ImportCatalog" runat="server" />
      </ZoneTemplate>
    </aspSample:MyCatalogZone>
      </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 Chrom- und Katalogteilzone. MyCatalogZone erweitert CatalogZone und überschreibt, CreateCatalogPartChrome um das benutzerdefinierte Katalogteil chrome zurückzugeben. MyCatalogPartChrome ändert die Hintergrundfarbe des Katalogsteuerelements in der CreateCatalogPartChromeStyle -Methode. Die Hintergrundfarbe der Zone wird in der PerformPreRender -Methode geändert, und dem Katalogteil in der RenderPartContents -Methode wird Text hinzugefügt.

namespace Samples.AspNet.CS.Controls
{

    /// <summary>
    /// Summary description for source
    /// </summary>
    public class MyCatalogPartChrome : CatalogPartChrome
    {
        public MyCatalogPartChrome(CatalogZoneBase zone)
            : base(zone)
        {
        }

        protected override Style  CreateCatalogPartChromeStyle(CatalogPart catalogPart, PartChromeType chromeType)
        {
            Style catalogStyle = base.CreateCatalogPartChromeStyle(catalogPart, chromeType);
            catalogStyle.BackColor = Color.Bisque;
            return catalogStyle;
        }

        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, CatalogPart catalogPart)
        {
            writer.AddStyleAttribute("color", "red");
            writer.RenderBeginTag("p");
            writer.Write("Apply all changes");
            writer.RenderEndTag();
            catalogPart.RenderControl(writer);
        }

        public override void  RenderCatalogPart(HtmlTextWriter writer, CatalogPart catalogPart)
        {
            base.RenderCatalogPart(writer, catalogPart);
        }
    }

    public class MyCatalogZone : CatalogZone
    {
        protected override CatalogPartChrome  CreateCatalogPartChrome()
        {
            return new MyCatalogPartChrome(this);
        }
    }
}
Namespace Samples.AspNet.VB.Controls


    Public Class MyCatalogPartChrome
        Inherits CatalogPartChrome

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

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

        Public Overrides Sub RenderCatalogPart(ByVal writer As System.Web.UI.HtmlTextWriter, ByVal catalogPart As System.Web.UI.WebControls.WebParts.CatalogPart)
            MyBase.RenderCatalogPart(writer, catalogPart)
        End Sub
    End Class

    Public Class MyCatalogZone
        Inherits CatalogZone

        Protected Overrides Function CreateCatalogPartChrome() As System.Web.UI.WebControls.WebParts.CatalogPartChrome
            Return New MyCatalogPartChrome(Me)
        End Function
    End Class
End Namespace

Hinweise

Chrome bezieht sich auf die Elemente der Peripherie-Benutzeroberfläche (Ui), die die einzelnen Webparts- oder Serversteuerelemente in einer Zone umrahmen. Das Chrom für ein Steuerelement enthält den Rahmen, die Titelleiste sowie die Symbole, den Titeltext und das Verbenmenü, das in der Titelleiste angezeigt wird. Die Darstellung des Chroms wird auf Zonenebene festgelegt und gilt für alle Steuerelemente in der Zone.

Der Webpart-Steuerelementsatz verwendet die CatalogPartChrome -Klasse, um das Chrom für CatalogPart Steuerelemente zu rendern. Darüber hinaus bietet diese Klasse eine Möglichkeit für Entwickler, das Rendering von Steuerelementen CatalogPart in einer CatalogZoneBase Zone anzupassen. Beispielsweise können Sie die CreateCatalogPartChromeStyle -Methode überschreiben, um bestimmte Stilattribute anzupassen, die auf die CatalogZoneBase Zone angewendet werden.

Die CatalogPartChrome -Klasse enthält mehrere wichtige Methoden, die nützlich sind, wenn Sie das Rendering von Steuerelementen CatalogPart überschreiben möchten. Eine ist der CatalogPartChrome Konstruktor, den Sie verwenden, wenn Sie die CreateCatalogPartChrome -Methode in einer benutzerdefinierten CatalogZoneBase Zone überschreiben, um eine Instanz Ihres benutzerdefinierten CatalogPartChrome Objekts zu erstellen. Eine weitere nützliche Methode ist die RenderPartContents Methode, mit der Sie das Rendering des Inhaltsbereichs von Steuerelementen in einer Zone steuern können (im Gegensatz zu Chromelementen wie Kopfzeilen, Fußzeilen und Titelleisten). Wenn Sie schließlich eine vollständige programmgesteuerte Kontrolle über alle Aspekte des Renderns der CatalogPart Steuerelemente wünschen, können Sie die RenderCatalogPart -Methode überschreiben.

Hinweise für Vererber

Wenn Sie von der CatalogPartChrome -Klasse erben, müssen Sie eine benutzerdefinierte CatalogZone Zone erstellen, um Ihre angepasste CatalogPartChrome Klasse zurückzugeben. Im Abschnitt Beispiel für diese Klassenübersicht wird veranschaulicht, wie Sie eine benutzerdefinierte CatalogZone Zone erstellen, um eine angepasste CatalogPartChrome Klasse zurückzugeben.

Konstruktoren

CatalogPartChrome(CatalogZoneBase)

Initialisiert eine neue Instanz der CatalogPartChrome-Klasse.

Eigenschaften

Zone

Ruft einen Verweis auf die zugeordnete CatalogZoneBase-Zone ab.

Methoden

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Erstellt das Stilobjekt, das die Stilattribute für jedes CatalogPart-Steuerelement bereitstellt, das vom CatalogPartChrome-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 CatalogPart-Steuerelementen verarbeitet werden müssen.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

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

RenderPartContents(HtmlTextWriter, CatalogPart)

Gibt den Hauptinhaltsbereich eines CatalogPart-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:

Weitere Informationen