CatalogPartChrome Classe

Definição

Permite aos programadores sobrepor a renderização apenas para as secções selecionadas de CatalogPart controlos numa CatalogZoneBase zona.

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Herança
CatalogPartChrome

Exemplos

O exemplo de código seguinte demonstra como usar a CatalogPartChrome classe para sobrescrever a renderização padrão dos CatalogPart controlos numa CatalogZoneBase zona.

O exemplo de código tem três partes:

  • Um controlo de utilizador que permite alterar modos de visualização numa página de Web Parts.

  • Uma página web que aloja todos os controlos do exemplo.

  • Uma classe que contém o código-fonte de uma classe e CatalogZoneBase zona personalizadasCatalogPartChrome.

A primeira parte do exemplo do código é o controlo do utilizador. O código-fonte do controlo do utilizador vem de outro tópico. Para que este exemplo de código funcione, precisa de obter o ficheiro .ascx para o controlo do utilizador a partir do tópico Walkthrough: Changing Display Modes on a Web Parts Page , e colocar o ficheiro na mesma pasta da página .aspx neste exemplo de código.

A segunda parte do exemplo é a página Web. Note que existe uma Register diretiva perto do topo do ficheiro para registar o componente compilado e um prefixo de etiqueta. Note também que a página faz referência à zona de catálogo personalizado usando o elemento <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>

A terceira parte do exemplo contém a implementação da parte de catálogo personalizada chrome e da zona de peças de catálogo. MyCatalogZone estende CatalogZone e sobrepõe CreateCatalogPartChrome para devolver a parte do catálogo personalizado chrome. MyCatalogPartChrome altera a cor de fundo do controlo de catálogo no CreateCatalogPartChromeStyle método. A cor de fundo da zona é alterada no PerformPreRender método, e o texto é adicionado à parte do catálogo no RenderPartContents método.

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

Observações

Chrome refere-se aos elementos periféricos da interface de utilizador (UI) que enquadram cada controlo Web Parts ou controlo de servidor contido numa zona. O cromo de um controlo inclui a sua borda, a sua barra de título e os ícones, texto do título e verbos que aparecem na barra de título. A aparência do cromo é definida ao nível da zona e aplica-se a todos os controlos da zona.

O conjunto de controlos Web Parts usa a CatalogPartChrome classe para renderizar o cromo dos CatalogPart controlos. Além disso, esta classe oferece uma forma para os programadores personalizarem a renderização de quaisquer CatalogPart controlos numa CatalogZoneBase zona. Por exemplo, podes sobrescrever o CreateCatalogPartChromeStyle método para personalizar alguns atributos de estilo específicos aplicados à CatalogZoneBase zona.

A CatalogPartChrome classe contém vários métodos importantes que são úteis quando se quer sobrepor a renderização dos CatalogPart controlos. Um é o CatalogPartChrome construtor, que usas quando sobrepões o CreateCatalogPartChrome método numa zona personalizada CatalogZoneBase para criar uma instância do teu objeto personalizado CatalogPartChrome . Outro método útil é o RenderPartContents método, que pode usar para controlar a renderização da área de conteúdo dos controlos numa zona (ao contrário de elementos do Chrome como cabeçalhos, rodapés e barras de título). Finalmente, se quiseres controlo programático completo sobre todos os aspetos da renderização dos CatalogPart controlos, podes sobrepor o RenderCatalogPart método.

Notas para Herdeiros

Se herdar da CatalogPartChrome classe, deve criar uma zona personalizada CatalogZone para devolver a sua classe personalizada CatalogPartChrome . A secção de Exemplos para esta visão geral da classe demonstra como criar uma zona personalizada CatalogZone para devolver uma classe personalizada CatalogPartChrome .

Construtores

Name Description
CatalogPartChrome(CatalogZoneBase)

Inicializa uma nova instância da CatalogPartChrome classe.

Propriedades

Name Description
Zone

Recebe uma referência para a zona associada CatalogZoneBase .

Métodos

Name Description
CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Cria o objeto style que fornece atributos style para cada CatalogPart controlo renderizado pelo CatalogPartChrome objeto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
PerformPreRender()

Realiza tarefas que devem ser feitas antes dos controlos de renderização CatalogPart .

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Renderiza um controlo completo CatalogPart com todas as suas secções.

RenderPartContents(HtmlTextWriter, CatalogPart)

Renderiza a área principal de conteúdo de um CatalogPart controlo, excluindo o cabeçalho e o rodapé.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também