Udostępnij za pośrednictwem


CatalogPartChrome Klasa

Definicja

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

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

Przykłady

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

Przykładowy kod ma trzy części:

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

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

  • Klasa zawierająca kod źródłowy dla niestandardowej CatalogPartChrome klasy i CatalogZoneBase 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: zmienianie trybów wyświetlania w temacie Strona składników Web Part 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 wykazu niestandardowego przy użyciu elementu <aspSample:MyCatalogZone>.

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

Trzecia część przykładu zawiera implementację niestandardowej części wykazu chrome i strefy części wykazu wykazu. MyCatalogZone CatalogZone rozszerza i zastępujeCreateCatalogPartChrome, aby zwrócić elementy chrome części wykazu niestandardowego. MyCatalogPartChrome zmienia kolor tła kontrolki wykazu w metodzie CreateCatalogPartChromeStyle . Kolor tła strefy jest zmieniany w metodzie PerformPreRender , a tekst jest dodawany do części wykazu w metodzie RenderPartContents .

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

Uwagi

Chrome odwołuje się do elementów interfejsu użytkownika peryferyjnego, które zawierają kontrolkę składników Web Part lub kontrolkę serwera znajdującą się 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ładników Web Part używa CatalogPartChrome klasy do renderowania elementu chrome dla CatalogPart kontrolek. Ponadto ta klasa umożliwia deweloperom dostosowywanie renderowania dowolnych CatalogPart kontrolek w CatalogZoneBase strefie. Można na przykład zastąpić metodę CreateCatalogPartChromeStyle , aby dostosować określone atrybuty stylu zastosowane do CatalogZoneBase strefy.

Klasa CatalogPartChrome zawiera kilka ważnych metod, które są przydatne, gdy chcesz zastąpić renderowanie CatalogPart kontrolek. Jednym z nich jest CatalogPartChrome konstruktor używany podczas zastępowania CreateCatalogPartChrome metody w strefie niestandardowej CatalogZoneBase w celu utworzenia wystąpienia obiektu niestandardowego CatalogPartChrome . 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 CatalogPart kontrolek, możesz zastąpić metodę RenderCatalogPart .

Uwagi dotyczące dziedziczenia

Jeśli dziedziczysz z CatalogPartChrome klasy, musisz utworzyć dostosowaną CatalogZone strefę, aby zwrócić dostosowaną CatalogPartChrome klasę. Sekcja Przykład dla tej klasy — omówienie przedstawia sposób tworzenia dostosowanej CatalogZone strefy w celu zwrócenia dostosowanej CatalogPartChrome klasy.

Konstruktory

CatalogPartChrome(CatalogZoneBase)

Inicjuje nowe wystąpienie klasy CatalogPartChrome.

Właściwości

Zone

Pobiera odwołanie do skojarzonej CatalogZoneBase strefy.

Metody

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Tworzy obiekt stylu, który dostarcza atrybuty stylu dla każdej CatalogPart kontrolki renderowanej przez CatalogPartChrome 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 CatalogPart kontrolek.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

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

RenderPartContents(HtmlTextWriter, CatalogPart)

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

ToString()

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

(Odziedziczone po Object)

Dotyczy

Zobacz też