Share via


CatalogPartChrome Classe

Definição

Permite que os desenvolvedores substituam a renderização apenas pelas seções selecionadas dos controles de CatalogPart em uma zona de CatalogZoneBase.

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

Exemplos

O exemplo de código a seguir demonstra como usar a CatalogPartChrome classe para substituir a renderização padrão de CatalogPart controles em uma CatalogZoneBase zona.

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

  • Um controle de usuário que permite alterar os modos de exibição em uma página Web Parts.

  • Uma página da Web que hospeda todos os controles no exemplo.

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

A primeira parte do exemplo de código é o controle do usuário. O código-fonte do controle do usuário vem de outro tópico. Para que este exemplo de código funcione, você precisa obter o arquivo .ascx para o controle de usuário do Passo a passo: alterar modos de exibição em um tópico de página Web Parts e colocar o arquivo na mesma pasta que a página .aspx neste exemplo de código.

A segunda parte do exemplo é a página da Web. Observe que há uma Register diretiva próxima à parte superior do arquivo para registrar o componente compilado e um prefixo de marca. Observe também que a página faz referência à zona de catálogo personalizada 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 zona de parte do catálogo personalizada do chrome e da parte do catálogo. MyCatalogZoneCatalogZone estende e substitui CreateCatalogPartChrome para retornar o cromo da parte do catálogo personalizado. MyCatalogPartChrome altera a cor da tela de fundo do controle de catálogo no CreateCatalogPartChromeStyle método. A cor da tela de fundo da zona é alterada no método e o PerformPreRender texto é adicionado à parte de 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

Comentários

O Chrome refere-se aos elementos de interface do usuário (interface do usuário) periféricos que enquadram cada controle Web Parts ou controle de servidor contido em uma zona. O cromo para um controle inclui sua borda, sua barra de título e os ícones, texto de título e menu de verbos que aparecem na barra de título. A aparência do cromo é definida no nível da zona e se aplica a todos os controles na zona.

O conjunto de controle Web Parts usa a CatalogPartChrome classe para renderizar o cromo para CatalogPart controles. Além disso, essa classe fornece uma maneira para os desenvolvedores personalizarem a renderização de quaisquer CatalogPart controles em uma CatalogZoneBase zona. Por exemplo, você pode substituir 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 você deseja substituir a renderização de CatalogPart controles. Um deles é o CatalogPartChrome construtor, que você usa quando substitui o CreateCatalogPartChrome método em uma zona personalizada CatalogZoneBase para criar uma instância do objeto personalizado CatalogPartChrome . Outro método útil é o RenderPartContents método, que você pode usar para controlar a renderização da área de conteúdo dos controles em uma zona (em vez de elementos cromados, como cabeçalhos, rodapés e barras de título). Por fim, se você quiser um controle programático completo sobre todos os aspectos da renderização dos CatalogPart controles, poderá substituir o RenderCatalogPart método.

Notas aos Herdeiros

Se você herdar da CatalogPartChrome classe, deverá criar uma zona personalizada CatalogZone para retornar sua classe personalizada CatalogPartChrome . A seção Exemplo para essa visão geral de classe demonstra como criar uma zona personalizada CatalogZone para retornar uma classe personalizada CatalogPartChrome .

Construtores

CatalogPartChrome(CatalogZoneBase)

Inicializa uma nova instância da classe CatalogPartChrome.

Propriedades

Zone

Obtém uma referência à zona CatalogZoneBase associada.

Métodos

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Cria o objeto de estilo que fornece os atributos de estilo para cada controle de CatalogPart renderizado pelo objeto de CatalogPartChrome.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
PerformPreRender()

Executa tarefas que devem ser executadas antes da renderização dos controles de CatalogPart.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Renderiza um controle de CatalogPart completo com todas as suas seções.

RenderPartContents(HtmlTextWriter, CatalogPart)

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

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também