CatalogPartChrome Třída

Definice

Umožňuje vývojářům přepsat vykreslování pouze pro vybrané části ovládacích CatalogPart prvků v CatalogZoneBase zóně.

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Dědičnost
CatalogPartChrome

Příklady

Následující příklad kódu ukazuje, jak použít CatalogPartChrome třídu k přepsání výchozí vykreslování ovládacích CatalogPart prvků v CatalogZoneBase zóně.

Příklad kódu má tři části:

  • Uživatelský ovládací prvek, který umožňuje změnit režimy zobrazení na stránce webových částí.

  • Webová stránka, která je hostitelem všech ovládacích prvků v příkladu.

  • Třída, která obsahuje zdrojový kód pro vlastní CatalogPartChrome třídu a CatalogZoneBase zónu.

První část příkladu kódu je uživatelský ovládací prvek. Zdrojový kód uživatelského ovládacího prvku pochází z jiného tématu. Aby tento příklad kódu fungoval, musíte získat soubor .ascx pro uživatelský ovládací prvek z tématu Návod: Změna režimů zobrazení na stránce webových částí a umístit soubor do stejné složky jako stránka .aspx v tomto příkladu kódu.

Druhou částí příkladu je webová stránka. Všimněte si, že v horní části souboru je Register direktiva pro registraci zkompilované komponenty a předpona značky. Všimněte si také, že stránka odkazuje na zónu vlastního katalogu pomocí 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>

Třetí část příkladu obsahuje implementaci vlastního katalogu části chrome a zóny části katalogu. MyCatalogZoneCatalogZone rozšiřuje a přepisujeCreateCatalogPartChrome, aby se vrátila chromová část vlastního katalogu. MyCatalogPartChrome změní barvu pozadí ovládacího prvku katalogu v CreateCatalogPartChromeStyle metodě . Barva pozadí zóny se změní v PerformPreRender metodě a text se přidá do části katalogu v RenderPartContents metodě .

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

Poznámky

Chrome odkazuje na prvky periferního uživatelského rozhraní (UI), které orámují každý ovládací prvek webových částí nebo serverový ovládací prvek obsažený v zóně. Ohraničení ovládacího prvku zahrnuje jeho ohraničení, záhlaví a ikony, text nadpisu a nabídku sloves, které se zobrazí v záhlaví. Vzhled chromu je nastaven na úrovni zóny a platí pro všechny ovládací prvky v zóně.

Sada ovládacích prvků webové části používá CatalogPartChrome třídu k vykreslení chromu ovládacích CatalogPart prvků. Kromě toho tato třída poskytuje vývojářům způsob, jak přizpůsobit vykreslování jakýchkoli CatalogPart ovládacích prvků v CatalogZoneBase zóně. Můžete například přepsat metodu CreateCatalogPartChromeStyle a přizpůsobit některé konkrétní atributy stylu použité na zónu CatalogZoneBase .

Třída CatalogPartChrome obsahuje několik důležitých metod, které jsou užitečné, když chcete přepsat vykreslování ovládacích CatalogPart prvků. První je CatalogPartChrome konstruktor, který použijete při přepsání CreateCatalogPartChrome metody ve vlastní CatalogZoneBase zóně k vytvoření instance vlastního CatalogPartChrome objektu. Další užitečnou metodou je RenderPartContents metoda, kterou můžete použít k řízení vykreslování oblasti obsahu ovládacích prvků v zóně (na rozdíl od prvků chromu, jako jsou záhlaví, zápatí a záhlaví). Pokud chcete mít úplnou programovou kontrolu nad všemi aspekty vykreslování CatalogPart ovládacích prvků, můžete přepsat metodu RenderCatalogPart .

Poznámky pro dědice

Pokud dědíte z CatalogPartChrome třídy , musíte vytvořit přizpůsobenou CatalogZone zónu, která vrátí vaši přizpůsobenou CatalogPartChrome třídu. Oddíl Příklad pro tento přehled třídy ukazuje, jak vytvořit přizpůsobenou CatalogZone zónu, která vrátí přizpůsobenou CatalogPartChrome třídu.

Konstruktory

CatalogPartChrome(CatalogZoneBase)

Inicializuje novou instanci CatalogPartChrome třídy .

Vlastnosti

Zone

Získá odkaz na přidruženou CatalogZoneBase zónu.

Metody

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Vytvoří objekt stylu, který poskytuje atributy stylu pro každý CatalogPart ovládací prvek vykreslený objektem CatalogPartChrome .

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
PerformPreRender()

Provádí úlohy, které je nutné provést před vykreslováním CatalogPart ovládacích prvků.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Vykreslí úplný CatalogPart ovládací prvek se všemi jeho oddíly.

RenderPartContents(HtmlTextWriter, CatalogPart)

Vykreslí oblast hlavního CatalogPart obsahu ovládacího prvku s výjimkou záhlaví a zápatí.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také