CatalogPartChrome Klass

Definition

Gör det möjligt för utvecklare att åsidosätta återgivningen endast för de valda avsnitten av CatalogPart kontroller i en CatalogZoneBase zon.

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

Exempel

Följande kodexempel visar hur du använder CatalogPartChrome klassen för att åsidosätta standardåtergivningen av CatalogPart kontroller i en CatalogZoneBase zon.

Kodexemplet har tre delar:

  • En användarkontroll som gör att du kan ändra visningslägen på en webbdelssida.

  • En webbsida som är värd för alla kontroller i exemplet.

  • En klass som innehåller källkoden för en anpassad CatalogPartChrome klass och CatalogZoneBase zon.

Den första delen av kodexemplet är användarkontrollen. Källkoden för användarkontrollen kommer från ett annat ämne. För att det här kodexemplet ska fungera måste du hämta .ascx-filen för användarkontrollen från avsnittet Genomgång: Ändra visningslägen på en webbdelssida och placera filen i samma mapp som sidan .aspx i det här kodexemplet.

Den andra delen av exemplet är webbsidan. Observera att det finns ett Register direktiv längst upp i filen för att registrera den kompilerade komponenten och ett taggprefix. Observera också att sidan refererar till den anpassade katalogzonen med elementet <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>

Den tredje delen av exemplet innehåller implementeringen av den anpassade katalogdelens krom- och katalogdelszon. MyCatalogZone utökar CatalogZone och åsidosätter CreateCatalogPartChrome för att returnera den anpassade katalogdelen chrome. MyCatalogPartChrome ändrar bakgrundsfärgen för katalogkontrollen i CreateCatalogPartChromeStyle -metoden. Bakgrundsfärgen för zonen ändras i PerformPreRender metoden och text läggs till i katalogdelen i RenderPartContents -metoden.

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

Kommentarer

Chrome refererar till elementen för det perifera användargränssnittet (UI) som ramar in varje webbdelskontroll eller serverkontroll som finns i en zon. Chrome för en kontroll innehåller dess kantlinje, dess namnlist och ikonerna, rubriktexten och verbmenyn som visas i namnlisten. Utseendet på kromet anges på zonnivå och gäller för alla kontroller i zonen.

Kontrolluppsättningen CatalogPartChrome Webbdelar använder klassen för att återge chrome för CatalogPart kontroller. Dessutom ger den här klassen ett sätt för utvecklare att anpassa renderingen av alla CatalogPart kontroller i en CatalogZoneBase zon. Du kan till exempel åsidosätta CreateCatalogPartChromeStyle metoden för att anpassa vissa specifika formatattribut som tillämpas på CatalogZoneBase zonen.

Klassen CatalogPartChrome innehåller flera viktiga metoder som är användbara när du vill åsidosätta återgivningen av CatalogPart kontroller. Den ena CatalogPartChrome är konstruktorn som du använder när du åsidosätter CreateCatalogPartChrome metoden i en anpassad CatalogZoneBase zon för att skapa en instans av ditt anpassade CatalogPartChrome objekt. En annan användbar metod är metoden RenderPartContents som du kan använda för att styra återgivningen av innehållsområdet för kontroller i en zon (till skillnad från kromelement som sidhuvuden, sidfötter och namnlister). Slutligen kan du åsidosätta metoden om du vill ha fullständig programmatisk kontroll över alla aspekter av återgivningen CatalogPart av RenderCatalogPart kontrollerna.

Anteckningar till arvingar

Om du ärver från CatalogPartChrome klassen måste du skapa en anpassad CatalogZone zon för att returnera din anpassade CatalogPartChrome klass. Avsnittet Exempel för den här klassöversikten visar hur du skapar en anpassad CatalogZone zon för att returnera en anpassad CatalogPartChrome klass.

Konstruktorer

Name Description
CatalogPartChrome(CatalogZoneBase)

Initierar en ny instans av CatalogPartChrome klassen.

Egenskaper

Name Description
Zone

Hämtar en referens till den associerade CatalogZoneBase zonen.

Metoder

Name Description
CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Skapar formatobjektet som tillhandahåller formatattribut för varje CatalogPart kontroll som återges av CatalogPartChrome objektet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
PerformPreRender()

Utför uppgifter som måste utföras innan återgivningskontroller CatalogPart .

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Renderar en fullständig CatalogPart kontroll med alla dess avsnitt.

RenderPartContents(HtmlTextWriter, CatalogPart)

Renderar huvudinnehållsområdet i en CatalogPart kontroll, exklusive sidhuvud och sidfot.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även