CatalogPartChrome Klasa

Definicja

Umożliwia deweloperom zastąpienie 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 za pomocą CatalogPartChrome klasy zastąpić domyślne renderowanie CatalogPart 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ł, musisz uzyskać plik ascx dla kontrolki użytkownika z przewodnika: zmienianie trybów wyświetlania na stronie 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 istnieje Register dyrektywa w górnej części pliku, aby zarejestrować skompilowany składnik i prefiks tagu. Należy również zauważyć, ż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ę strefy części wykazu niestandardowego— chrome i catalog part. MyCatalogZoneCatalogZone rozszerza i zastępujeCreateCatalogPartChrome, aby zwrócić chrom 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

Przeglądarka Chrome odwołuje się do elementów interfejsu użytkownika peryferyjnego, które oprawią każdą kontrolkę składników Web Part lub kontrolkę serwera zawartą w strefie. Chrome kontrolki zawiera 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 chrome dla CatalogPart kontrolek. Ponadto ta klasa umożliwia deweloperom dostosowywanie renderowania wszystkich 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, który jest używany podczas zastępowania CreateCatalogPartChrome metody w strefie niestandardowej w celu utworzenia wystąpienia obiektu niestandardowego CatalogZoneBaseCatalogPartChrome . 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 ukończyć programową kontrolę 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ładowa dla tej klasy — omówienie pokazuje, jak utworzyć dostosowaną CatalogZone strefę, aby zwrócić dostosowaną CatalogPartChrome klasę.

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 bieżące wystąpienie.

(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 jego 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ż