다음을 통해 공유


CatalogPartChrome 클래스

정의

개발자가 CatalogPart 영역에서 CatalogZoneBase 컨트롤의 선택된 섹션에 대해서만 렌더링을 재정의할 수 있도록 합니다.

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
상속
CatalogPartChrome

예제

다음 코드 예제를 사용 CatalogPartChrome 하는 방법에 설명 합니다 클래스는 영역에서 컨트롤의 기본 렌더링을 CatalogZoneBase 재정의 CatalogPart 합니다.

이 코드 예제는 세 부분으로 구성 합니다.

  • 웹 파트 페이지의 디스플레이 모드를 변경할 수 있게 해 주는 사용자 정의 컨트롤입니다.

  • 예제에서 모든 컨트롤을 호스팅하는 웹 페이지입니다.

  • 사용자 지정에 대 한 소스 코드를 포함 하는 클래스 CatalogPartChrome 클래스 및 CatalogZoneBase 영역입니다.

코드 예제의 첫 번째 부분은 사용자 정의 컨트롤입니다. 사용자 정의 컨트롤에 대 한 소스 코드는 다른 항목에서 제공 됩니다. 작동 하려면이 코드 예제에서는 사용자 컨트롤은.ascx 파일을 가져올 필요가 합니다 연습: 웹 파트 페이지의 디스플레이 모드를 변경 항목 및이 코드 예제에서.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>

예제의 세 번째 부분에는 사용자 지정 카탈로그 파트 크롬 및 카탈로그 파트 영역의 구현이 포함되어 있습니다. MyCatalogZoneCatalogZone 사용자 지정 카탈로그 파트 크롬을 반환하도록 를 확장하고 재정의합니다 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을 영역에 포함 된 각 웹 파트 컨트롤 또는 서버 컨트롤 프레임 주변 사용자 인터페이스 (UI) 요소를 참조 합니다. 테두리, 제목 표시줄, 아이콘, 제목 텍스트 및 제목 표시줄에 나타나는 동사 메뉴 컨트롤의 크롬에 포함 되어 있습니다. 크롬 모양의 영역 수준에서 설정 되 고 영역에 있는 모든 컨트롤에 적용 됩니다.

웹 파트 컨트롤 집합 사용 합니다 CatalogPartChrome 에 대 한 크롬을 렌더링 하는 클래스 CatalogPart 컨트롤입니다. 또한 이 클래스는 개발자가 영역에 있는 모든 CatalogPart 컨트롤의 렌더링을 사용자 지정할 수 있는 CatalogZoneBase 방법을 제공합니다. 예를 들어 메서드를 재정의 CreateCatalogPartChromeStyle 하여 영역에 적용 CatalogZoneBase 된 특정 스타일 특성을 사용자 지정할 수 있습니다.

합니다 CatalogPartChrome 클래스의 렌더링을 재정의 하려는 경우 유용할 수 있는 몇 가지 중요 한 메서드가 포함 되어 CatalogPart 컨트롤입니다. 하나는 사용자 지정 영역에서 메서드를 CatalogPartChrome 재정의하여 사용자 지정 CatalogZoneBase 개체의 CreateCatalogPartChromeCatalogPartChrome 인스턴스를 만들 때 사용하는 생성자입니다. 또 다른 유용한 방법은 RenderPartContents (대신 chrome 요소 머리글, 바닥글 및 제목 표시줄 등) 영역의 컨트롤의 콘텐츠 영역 렌더링을 제어 하는 데 사용할 수 있는 메서드. 마지막으로, 모든 부분 렌더링을 완료 프로그래밍 방식으로 제어 하려는 경우는 CatalogPart 컨트롤을 재정의할 수 있습니다는 RenderCatalogPart 메서드.

상속자 참고

상속 하는 경우는 CatalogPartChrome 클래스를 만들어야 합니다를 사용자 지정 CatalogZone 영역에 사용자 지정 된 반환할 CatalogPartChrome 클래스입니다. 이 클래스 개요의 예제 섹션에서는 사용자 CatalogPartChrome 지정된 클래스를 반환하는 사용자 지정 CatalogZone 영역을 만드는 방법을 보여 줍니다.

생성자

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)

적용 대상

추가 정보