Bagikan melalui


CatalogPartChrome Kelas

Definisi

Memungkinkan pengembang untuk mengambil alih penyajian hanya untuk bagian CatalogPart kontrol yang dipilih di zona CatalogZoneBase .

public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
Warisan
CatalogPartChrome

Contoh

Contoh kode berikut menunjukkan cara menggunakan CatalogPartChrome kelas untuk mengambil alih penyajian CatalogPart kontrol default di zona CatalogZoneBase .

Contoh kode memiliki tiga bagian:

  • Kontrol pengguna yang memungkinkan Anda mengubah mode tampilan pada halaman Bagian Web.

  • Halaman Web yang menghosting semua kontrol dalam contoh.

  • Kelas yang berisi kode sumber untuk kelas dan CatalogZoneBase zona kustomCatalogPartChrome.

Bagian pertama dari contoh kode adalah kontrol pengguna. Kode sumber untuk kontrol pengguna berasal dari topik lain. Agar contoh kode ini berfungsi, Anda perlu mendapatkan file .ascx untuk kontrol pengguna dari Panduan: Mengubah Mode Tampilan pada topik Halaman Bagian Web , dan menempatkan file di folder yang sama dengan halaman .aspx dalam contoh kode ini.

Bagian kedua dari contoh adalah halaman Web. Perhatikan bahwa ada direktif Register di dekat bagian atas file untuk mendaftarkan komponen yang dikompilasi dan awalan tag. Perhatikan juga bahwa halaman mereferensikan zona katalog kustom menggunakan elemen <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>

Bagian ketiga dari contoh berisi implementasi chrome bagian katalog kustom dan zona bagian katalog. MyCatalogZone CatalogZone memperluas dan mengambil CreateCatalogPartChrome alih untuk mengembalikan chrome bagian katalog kustom. MyCatalogPartChrome mengubah warna latar belakang kontrol katalog dalam CreateCatalogPartChromeStyle metode . Warna latar belakang zona diubah dalam PerformPreRender metode , dan teks ditambahkan ke bagian katalog dalam RenderPartContents metode .

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

Keterangan

Chrome mengacu pada elemen antarmuka pengguna periferal (UI) yang membingkai setiap kontrol Bagian Web atau kontrol server yang terkandung dalam zona. Chrome untuk kontrol mencakup batasnya, bilah judulnya, dan ikon, teks judul, dan menu kata kerja yang muncul di dalam bilah judul. Tampilan chrome diatur pada tingkat zona, dan berlaku untuk semua kontrol di zona tersebut.

Set kontrol Bagian Web menggunakan CatalogPartChrome kelas untuk merender chrome untuk CatalogPart kontrol. Selain itu, kelas ini menyediakan cara bagi pengembang untuk menyesuaikan penyajian kontrol apa pun CatalogPart di zona CatalogZoneBase . Misalnya, Anda dapat mengambil CreateCatalogPartChromeStyle alih metode untuk menyesuaikan beberapa atribut gaya tertentu yang diterapkan ke zona tersebut CatalogZoneBase .

Kelas CatalogPartChrome berisi beberapa metode penting yang berguna ketika Anda ingin mengambil alih penyajian CatalogPart kontrol. Salah satunya adalah CatalogPartChrome konstruktor, yang Anda gunakan saat mengambil alih CreateCatalogPartChrome metode di zona kustom CatalogZoneBase untuk membuat instans objek kustom CatalogPartChrome Anda. Metode lain yang berguna adalah RenderPartContents metode , yang dapat Anda gunakan untuk mengontrol penyajian area konten kontrol di zona (dibandingkan dengan elemen chrome seperti header, footer, dan bilah judul). Terakhir, jika Anda ingin kontrol terprogram penuh atas semua aspek penyajian CatalogPart kontrol, Anda dapat mengambil alih metode .RenderCatalogPart

Catatan Bagi Inheritor

Jika Anda mewarisi dari CatalogPartChrome kelas , Anda harus membuat zona yang disesuaikan CatalogZone untuk mengembalikan kelas yang disesuaikan CatalogPartChrome . Bagian Contoh untuk gambaran umum kelas ini menunjukkan cara membuat zona yang dikustomisasi CatalogZone untuk mengembalikan kelas yang disesuaikan CatalogPartChrome .

Konstruktor

CatalogPartChrome(CatalogZoneBase)

Menginisialisasi instans baru kelas CatalogPartChrome.

Properti

Zone

Mendapatkan referensi ke zona terkait CatalogZoneBase .

Metode

CreateCatalogPartChromeStyle(CatalogPart, PartChromeType)

Membuat objek gaya yang memasok atribut gaya untuk setiap CatalogPart kontrol yang CatalogPartChrome dirender oleh objek.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
PerformPreRender()

Melakukan tugas yang harus dilakukan sebelum merender CatalogPart kontrol.

RenderCatalogPart(HtmlTextWriter, CatalogPart)

Merender kontrol penuh CatalogPart dengan semua bagiannya.

RenderPartContents(HtmlTextWriter, CatalogPart)

Merender area CatalogPart konten utama kontrol, tidak termasuk header dan footer.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga