次の方法で共有


CatalogPartChrome クラス

定義

開発者が、CatalogPart ゾーン内の CatalogZoneBase コントロールの選択したセクションの表示だけをオーバーライドできるようにします。

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
継承
CatalogPartChrome

次のコード例では、 クラスを使用 CatalogPartChrome して、ゾーン内のコントロールの既定の CatalogPart レンダリングをオーバーライドする方法を CatalogZoneBase 示します。

このコード例には、次の 3 つの部分があります。

  • Web パーツ ページの表示モードを変更できるユーザー コントロール。

  • この例のすべてのコントロールをホストする Web ページ。

  • カスタム CatalogPartChrome クラスと CatalogZoneBase ゾーンのソース コードを含むクラス。

コード例の最初の部分は、ユーザー コントロールです。 ユーザー コントロールのソース コードは、別のトピックから取得されます。 このコード例を機能させるには、「 チュートリアル: Web パーツ ページでの表示モードの変更 」トピックからユーザー コントロールの .ascx ファイルを取得し、このコード例の .aspx ページと同じフォルダーにファイルを配置する必要があります。

この例の 2 番目の部分は Web ページです。 ファイルの先頭付近に、コンパイル済みコンポーネントとタグ プレフィックスを登録する ディレクティブがあることに 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>

例の 3 番目の部分には、カスタム カタログ パーツクロムとカタログ パーツ ゾーンの実装が含まれています。 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 は、ゾーンに含まれる各 Web パーツ コントロールまたはサーバー コントロールをフレーム化する周辺機器ユーザー インターフェイス (UI) 要素を指します。 コントロールのクロムには、境界線、タイトル バー、タイトル バー内に表示されるアイコン、タイトル テキスト、動詞メニューが含まれます。 クロムの外観はゾーン レベルで設定され、ゾーン内のすべてのコントロールに適用されます。

Web パーツ コントロール セットでは、 クラスを CatalogPartChrome 使用してコントロールのクロムを CatalogPart レンダリングします。 さらに、このクラスは、開発者がゾーン内のコントロール CatalogPart のレンダリングをカスタマイズする方法を CatalogZoneBase 提供します。 たとえば、 メソッドを CreateCatalogPartChromeStyle オーバーライドして、ゾーンに適用される特定のスタイル属性を CatalogZoneBase カスタマイズできます。

CatalogPartChromeクラスには、コントロールのレンダリングCatalogPartをオーバーライドする場合に役立ついくつかの重要なメソッドが含まれています。 CatalogPartChrome 1 つはコンストラクターであり、カスタム ゾーンの メソッドをCreateCatalogPartChromeオーバーライドしてカスタム CatalogZoneBase オブジェクトのCatalogPartChromeインスタンスを作成するときに使用します。 もう 1 つの便利な方法は 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)

適用対象

こちらもご覧ください