CatalogPartChrome Класс

Определение

Предоставляет разработчикам возможность переопределять способ отрисовки выбранных разделов элемента управления CatalogPart в зоне CatalogZoneBase.

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Наследование
CatalogPartChrome

Примеры

В следующем примере кода показано, как использовать CatalogPartChrome класс для переопределения отображения CatalogPart элементов управления по умолчанию в CatalogZoneBase зоне.

Пример кода состоит из трех частей:

  • Пользовательский элемент управления, позволяющий изменять режимы отображения на странице веб-частей.

  • Веб-страница, на которую размещаются все элементы управления в примере.

  • Класс , содержащий исходный код для пользовательского CatalogPartChrome класса и CatalogZoneBase зоны.

Первая часть примера кода — это пользовательский элемент управления. Исходный код для пользовательского элемента управления поступает из другого раздела. Чтобы этот пример кода работал, необходимо получить ASCX-файл для пользовательского элемента управления из раздела Walkthrough: Changing Display Modes on a Web Parts Page (Пошаговое руководство: изменение режимов отображения на странице веб-частей ) и поместить файл в ту же папку, что и страница .aspx в этом примере кода.

Вторая часть примера — веб-страница. Обратите внимание, что в верхней части файла есть Register директива для регистрации скомпилированного компонента и префикса тега. Также обратите внимание, что страница ссылается на настраиваемую зону каталога с помощью элемента <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>

Третья часть примера содержит реализацию пользовательского хрома части каталога и зоны части каталога. MyCatalogZone CatalogZone расширяет и переопределяетCreateCatalogPartChrome, возвращая хром пользовательской части каталога. MyCatalogPartChrome изменяет цвет фона элемента управления каталогом в методе CreateCatalogPartChromeStyle . Цвет фона зоны изменяется в методе PerformPreRender , а текст добавляется в часть каталога в методе 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

Комментарии

Chrome относится к периферийным элементам пользовательского интерфейса, которые обрамляют каждый элемент управления веб-частей или серверный элемент управления, содержащийся в зоне. Хром для элемента управления включает его границу, строку заголовка, а также значки, текст заголовка и меню команд, которые отображаются в строке заголовка. Внешний вид хрома задается на уровне зоны и применяется ко всем элементам управления в зоне.

Набор элементов управления веб-частей использует CatalogPartChrome класс для отрисовки хрома для CatalogPart элементов управления. Кроме того, этот класс предоставляет разработчикам способ настройки отрисовки любых CatalogPart элементов управления в CatalogZoneBase зоне. Например, можно переопределить CreateCatalogPartChromeStyle метод , чтобы настроить некоторые атрибуты стиля, применяемые CatalogZoneBase к зоне.

Класс CatalogPartChrome содержит несколько важных методов, которые полезны, если требуется переопределить отрисовку CatalogPart элементов управления. Одним из них является CatalogPartChrome конструктор, который используется при переопределении CreateCatalogPartChrome метода в настраиваемой CatalogZoneBase зоне для создания экземпляра пользовательского CatalogPartChrome объекта. Другим полезным методом RenderPartContents является метод , который можно использовать для управления отрисовкой области содержимого элементов управления в зоне (в отличие от элементов хрома, таких как колонтитулы, нижние колонтитулы и строки заголовков). Наконец, если требуется полный программный контроль над всеми аспектами отрисовки CatalogPart элементов управления, можно переопределить RenderCatalogPart метод .

Примечания для тех, кто наследует этот метод

При наследовании CatalogPartChrome от класса необходимо создать настраиваемую CatalogZone зону для возврата настроенного CatalogPartChrome класса. В разделе Пример для обзора этого класса показано, как создать настраиваемую CatalogZone зону для возврата настроенного CatalogPartChrome класса.

Конструкторы

CatalogPartChrome(CatalogZoneBase)

Инициализирует новый экземпляр класса CatalogPartChrome.

Свойства

Zone

Получает ссылку на сопоставленную зону CatalogZoneBase.

Методы

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Создает объект стиля, который передает атрибуты стиля для каждого элемента управления CatalogPart, отображаемого объектом CatalogPartChrome.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
PerformPreRender()

Выполняет задачи, которые необходимо завершить перед отрисовкой элементов управления CatalogPart.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Выполняет полное отображение элемента управления CatalogPart и всех его разделов.

RenderPartContents(HtmlTextWriter, CatalogPart)

Отображает основную область содержимого элемента управления CatalogPart за исключением колонтитулов.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел