CatalogPartChrome Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Umożliwia deweloperom zastępowanie renderowania tylko dla wybranych sekcji CatalogPart kontrolek w CatalogZoneBase strefie.
public ref class CatalogPartChrome
public class CatalogPartChrome
type CatalogPartChrome = class
Public Class CatalogPartChrome
- Dziedziczenie
-
CatalogPartChrome
Przykłady
W poniższym przykładzie kodu pokazano, jak użyć CatalogPartChrome klasy do zastąpienia domyślnego CatalogPart renderowania kontrolek w CatalogZoneBase strefie.
Przykładowy kod ma trzy części:
Kontrolka użytkownika, która umożliwia zmianę trybów wyświetlania na stronie składników Web Part.
Strona sieci Web, która hostuje wszystkie kontrolki w przykładzie.
Klasa zawierająca kod źródłowy dla niestandardowej CatalogPartChrome klasy i CatalogZoneBase strefy.
Pierwszą częścią przykładu kodu jest kontrolka użytkownika. Kod źródłowy kontrolki użytkownika pochodzi z innego tematu. Aby ten przykład kodu działał, należy uzyskać plik ascx dla kontrolki użytkownika z przewodnika: zmienianie trybów wyświetlania w temacie Strona składników Web Part i umieścić plik w tym samym folderze co strona .aspx w tym przykładzie kodu.
Drugą częścią przykładu jest strona sieci Web. Należy pamiętać, że w górnej części pliku znajduje Register
się dyrektywa umożliwiająca zarejestrowanie skompilowanego składnika i prefiksu tagu. Zwróć również uwagę, że strona odwołuje się do strefy wykazu niestandardowego przy użyciu elementu <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>
Trzecia część przykładu zawiera implementację niestandardowej części wykazu chrome i strefy części wykazu wykazu.
MyCatalogZone
CatalogZone rozszerza i zastępujeCreateCatalogPartChrome, aby zwrócić elementy chrome części wykazu niestandardowego.
MyCatalogPartChrome
zmienia kolor tła kontrolki wykazu w metodzie CreateCatalogPartChromeStyle . Kolor tła strefy jest zmieniany w metodzie PerformPreRender , a tekst jest dodawany do części wykazu w metodzie 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
Uwagi
Chrome odwołuje się do elementów interfejsu użytkownika peryferyjnego, które zawierają kontrolkę składników Web Part lub kontrolkę serwera znajdującą się w strefie. Chrome kontrolki zawiera jej obramowanie, pasek tytułu oraz ikony, tekst tytułu i menu czasowników wyświetlane na pasku tytułu. Wygląd chromu jest ustawiany na poziomie strefy i ma zastosowanie do wszystkich kontrolek w strefie.
Zestaw kontrolek składników Web Part używa CatalogPartChrome klasy do renderowania elementu chrome dla CatalogPart kontrolek. Ponadto ta klasa umożliwia deweloperom dostosowywanie renderowania dowolnych CatalogPart kontrolek w CatalogZoneBase strefie. Można na przykład zastąpić metodę CreateCatalogPartChromeStyle , aby dostosować określone atrybuty stylu zastosowane do CatalogZoneBase strefy.
Klasa CatalogPartChrome zawiera kilka ważnych metod, które są przydatne, gdy chcesz zastąpić renderowanie CatalogPart kontrolek. Jednym z nich jest CatalogPartChrome konstruktor używany podczas zastępowania CreateCatalogPartChrome metody w strefie niestandardowej CatalogZoneBase w celu utworzenia wystąpienia obiektu niestandardowego CatalogPartChrome . Inną przydatną metodą jest RenderPartContents metoda , której można użyć do kontrolowania renderowania obszaru zawartości kontrolek w strefie (w przeciwieństwie do elementów chrome, takich jak nagłówki, stopki i paski tytułu). Na koniec, jeśli chcesz uzyskać pełną kontrolę programową nad wszystkimi aspektami renderowania CatalogPart kontrolek, możesz zastąpić metodę RenderCatalogPart .
Uwagi dotyczące dziedziczenia
Jeśli dziedziczysz z CatalogPartChrome klasy, musisz utworzyć dostosowaną CatalogZone strefę, aby zwrócić dostosowaną CatalogPartChrome klasę. Sekcja Przykład dla tej klasy — omówienie przedstawia sposób tworzenia dostosowanej CatalogZone strefy w celu zwrócenia dostosowanej CatalogPartChrome klasy.
Konstruktory
CatalogPartChrome(CatalogZoneBase) |
Inicjuje nowe wystąpienie klasy CatalogPartChrome. |
Właściwości
Zone |
Pobiera odwołanie do skojarzonej CatalogZoneBase strefy. |
Metody
CreateCatalogPartChromeStyle(CatalogPart, PartChromeType) |
Tworzy obiekt stylu, który dostarcza atrybuty stylu dla każdej CatalogPart kontrolki renderowanej przez CatalogPartChrome obiekt. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
PerformPreRender() |
Wykonuje zadania, które należy wykonać przed renderowaniem CatalogPart kontrolek. |
RenderCatalogPart(HtmlTextWriter, CatalogPart) |
Renderuje pełną CatalogPart kontrolkę ze wszystkimi jej sekcjami. |
RenderPartContents(HtmlTextWriter, CatalogPart) |
Renderuje główny obszar zawartości kontrolki CatalogPart , z wyłączeniem nagłówka i stopki. |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |