WebPartChrome Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee kunnen ontwikkelaars de rendering alleen overschrijven voor de geselecteerde secties van WebPart of serverbesturingselementen in een WebPartZoneBase zone.
public ref class WebPartChrome
public class WebPartChrome
type WebPartChrome = class
Public Class WebPartChrome
- Overname
-
WebPartChrome
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u de WebPartChrome klasse gebruikt om de standaardweergave van WebPart besturingselementen in een WebPartZoneBase zone te overschrijven.
Het codevoorbeeld heeft vier delen:
Een gebruikersbeheer waarmee u weergavemodi op een pagina met webonderdelen kunt wijzigen.
Een webpagina waarop alle besturingselementen in het voorbeeld worden gehost.
Een klasse die de broncode voor een aangepaste WebPartZoneBase zone en een WebPartChrome klasse bevat.
Een uitleg van hoe het voorbeeld werkt.
Het eerste deel van het codevoorbeeld is het gebruikersbeheer. De broncode voor het gebruikersbeheer komt uit een ander onderwerp. Om dit codevoorbeeld te laten werken, moet u het ASCX-bestand voor het gebruikersbeheer ophalen uit het scenario: Weergavemodi wijzigen op een paginaonderwerp met webonderdelen en het bestand in dezelfde map plaatsen als de .aspx pagina in dit codevoorbeeld.
Het tweede deel van het voorbeeld is de webpagina. Houd er rekening mee dat er boven aan het bestand een Register instructie is voor het registreren van het gecompileerde onderdeel en een tagvoorvoegsel. Houd er ook rekening mee dat de pagina verwijst naar de aangepaste zone met behulp van het element <aspSample:MyZone> en verschillende standaardbesturingselementen voor ASP.NET server in de zone bevat. De serverbesturingselementen implementeren geen werkelijke functionaliteit; ze worden hier alleen gebruikt om te illustreren hoe de WebPartChrome klassefuncties van toepassing zijn op renderingzones. Houd er rekening mee dat deze serverbesturingselementen, hoewel ze niet werkelijk zijn WebPart besturingselementen, automatisch worden verpakt (door ASP.NET) met een GenericWebPart-object tijdens runtime, zodat ze dezelfde functionaliteit hebben als WebPart besturingselementen.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuCS"
Src="~/DisplayModeMenuCS.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.CS.Controls"
Assembly="MyChromeCS" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuCS id="menu1" runat="server" />
<aspSample:MyZone ID="WebPartZone1" runat="server"
RenderVerbsInMenu="true">
<PartTitleStyle Font-Bold="true"
BorderWidth="1"
BackColor="lightblue"/>
<ZoneTemplate>
<asp:Panel runat="server" id="panel1"
title="Vote on Issues" >
<asp:RadioButtonList ID="RadioButtonList1" runat="server" >
<asp:ListItem Value="1">Issue 1</asp:ListItem>
<asp:ListItem Value="2">Issue 2</asp:ListItem>
<asp:ListItem Value="3">Issue 3</asp:ListItem>
</asp:RadioButtonList>
<asp:Button ID="Button1" runat="server" Text="Cast Vote" />
</asp:Panel>
<asp:FileUpload ID="FileUpload1" runat="server"
title="Upload Files" />
</ZoneTemplate>
</aspSample:MyZone>
<asp:WebPartZone ID="WebPartZone2" runat="server" />
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" />
</ZoneTemplate>
</asp:EditorZone>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register TagPrefix="uc1"
TagName="DisplayModeMenuVB"
Src="~/DisplayModeMenuVB.ascx" %>
<%@ Register TagPrefix="aspSample"
Namespace="Samples.AspNet.VB.Controls"
Assembly="MyChromeVB" %>
<!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 runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuVB id="menu1" runat="server" />
<aspSample:MyZone ID="WebPartZone1" runat="server"
RenderVerbsInMenu="true">
<PartTitleStyle Font-Bold="true"
BorderWidth="1"
BackColor="lightblue"/>
<ZoneTemplate>
<asp:Panel runat="server" id="panel1"
title="Vote on Issues" >
<asp:RadioButtonList ID="RadioButtonList1" runat="server" >
<asp:ListItem Value="1">Issue 1</asp:ListItem>
<asp:ListItem Value="2">Issue 2</asp:ListItem>
<asp:ListItem Value="3">Issue 3</asp:ListItem>
</asp:RadioButtonList>
<asp:Button ID="Button1" runat="server" Text="Cast Vote" />
</asp:Panel>
<asp:FileUpload ID="FileUpload1" runat="server"
title="Upload Files" />
</ZoneTemplate>
</aspSample:MyZone>
<asp:WebPartZone ID="WebPartZone2" runat="server" />
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" />
</ZoneTemplate>
</asp:EditorZone>
</form>
</body>
</html>
Het derde deel van het codevoorbeeld is de bron voor de aangepaste WebPartZoneBase zone en een WebPartChrome klasse. In de constructor voor de aangepaste zoneklasse controleert de code de MyZone.RenderVerbsInMenu eigenschap. Als de waarde is true, worden werkwoorden weergegeven in een menu voor elk van de WebPart besturingselementen in de zone. Dit is het normale, standaardgedrag in de besturingselementenset webonderdelen. Als de MyZone.RenderVerbsInMenu eigenschapswaarde falseis, wat de standaardwaarde is in deze aangepaste zone, worden de werkwoorden afzonderlijk weergegeven als koppelingen in de titelbalk van elk besturingselement. U ziet dat er in de webpaginacode waar het <aspSample:MyZone> element wordt gedeclareerd, een RenderVerbsInMenu kenmerk is ingesteld op true, zodat de werkwoorden worden weergegeven in menu's op de besturingselementen. Als u wilt experimenteren met deze functie, kunt u het declaratieve RenderVerbsInMenu kenmerk falseinstellen op en noteren hoe de werkwoorden worden weergegeven als koppelingen.
De aangepaste WebPartChrome klasse overschrijft de rendering op verschillende methoden en de aangepaste zone maakt een exemplaar van de klasse in CreateWebPartChrome de MyWebPartChrome methode. Hiermee wordt de aangepaste rendering toegepast op de pagina. Als u het codevoorbeeld wilt uitvoeren, moet u deze broncode compileren. U kunt deze expliciet compileren en de resulterende assembly in de map Bin van uw website of de globale assemblycache plaatsen. U kunt de broncode ook in de map App_Code van uw site plaatsen, waar deze dynamisch wordt gecompileerd tijdens runtime. Zie Walkthrough: Een aangepast webserverbeheer ontwikkelen en gebruiken voor een overzicht van beide methoden voor het compileren.
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyZone : WebPartZone
{
private Boolean _renderVerbsInMenu;
protected override WebPartChrome CreateWebPartChrome()
{
WebPartChrome theChrome = new MyWebPartChrome(this,
this.WebPartManager);
if (RenderVerbsInMenu)
this.WebPartVerbRenderMode = WebPartVerbRenderMode.Menu;
else
this.WebPartVerbRenderMode = WebPartVerbRenderMode.TitleBar;
return theChrome;
}
public Boolean RenderVerbsInMenu
{
get { return _renderVerbsInMenu; }
set { _renderVerbsInMenu = value; }
}
}
[AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level = AspNetHostingPermissionLevel.Minimal)]
public class MyWebPartChrome : WebPartChrome
{
WebPartZoneBase theZone;
WebPartManager theManager;
public MyWebPartChrome(WebPartZoneBase aZone, WebPartManager aManager) :
base(aZone, aManager)
{
theZone = aZone;
theManager = aManager;
}
protected override WebPartVerbCollection GetWebPartVerbs(WebPart webPart)
{
ArrayList verbSet = new ArrayList();
foreach (WebPartVerb verb in base.GetWebPartVerbs(webPart))
{
if (verb.Text != "Close")
verbSet.Add(verb);
}
WebPartVerbCollection reducedVerbSet =
new WebPartVerbCollection(verbSet);
return reducedVerbSet;
}
protected override Style CreateWebPartChromeStyle(WebPart part,
PartChromeType chromeType)
{
Style finalStyle = new Style();
finalStyle.CopyFrom(base.CreateWebPartChromeStyle(part, chromeType));
finalStyle.Font.Name = "Verdana";
return finalStyle;
}
protected override void RenderPartContents(HtmlTextWriter writer,
WebPart part)
{
if (part == this.WebPartManager.SelectedWebPart)
HttpContext.Current.Response.Write("<span>Not rendered</span>");
else
if(this.Zone.GetType() == typeof(MyZone))
part.RenderControl(writer);
}
}
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyZone
Inherits WebPartZone
Private _renderVerbsInMenu As Boolean
Protected Overrides Function CreateWebPartChrome() As WebPartChrome
Dim theChrome As WebPartChrome = _
New MyWebPartChrome(Me, Me.WebPartManager)
If RenderVerbsInMenu Then
Me.WebPartVerbRenderMode = WebPartVerbRenderMode.Menu
Else
Me.WebPartVerbRenderMode = WebPartVerbRenderMode.TitleBar
End If
Return theChrome
End Function
Public Property RenderVerbsInMenu() As Boolean
Get
Return _renderVerbsInMenu
End Get
Set(ByVal value As Boolean)
_renderVerbsInMenu = value
End Set
End Property
End Class
<AspNetHostingPermission(SecurityAction.Demand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
<AspNetHostingPermission(SecurityAction.InheritanceDemand, _
Level:=AspNetHostingPermissionLevel.Minimal)> _
Public Class MyWebPartChrome
Inherits WebPartChrome
Dim theManager As WebPartManager
Dim theZone As WebPartZoneBase
Public Sub New(ByVal aZone As WebPartZoneBase, _
ByVal aManager As WebPartManager)
MyBase.New(aZone, aManager)
theManager = aManager
theZone = aZone
End Sub
Protected Overrides Function GetWebPartVerbs _
(ByVal webPart As WebPart) As WebPartVerbCollection
Dim verbSet As New ArrayList()
Dim verb As WebPartVerb
For Each verb In MyBase.GetWebPartVerbs(webPart)
If verb.Text <> "Close" Then
verbSet.Add(verb)
End If
Next verb
Dim reducedVerbSet As WebPartVerbCollection = _
New WebPartVerbCollection(verbSet)
Return reducedVerbSet
End Function
Protected Overrides Function CreateWebPartChromeStyle _
(ByVal part As WebPart, ByVal chromeType As PartChromeType) As Style
Dim finalStyle As New Style()
finalStyle.CopyFrom(MyBase.CreateWebPartChromeStyle(Part, chromeType))
finalStyle.Font.Name = "Verdana"
Return finalStyle
End Function
Protected Overrides Sub RenderPartContents _
(ByVal writer As HtmlTextWriter, ByVal part As WebPart)
If part Is Me.WebPartManager.SelectedWebPart Then
HttpContext.Current.Response.Write("<span>Not rendered</span>")
Else
If (Me.Zone.GetType() Is GetType(MyZone)) Then
part.RenderControl(writer)
End If
End If
End Sub
End Class
End Namespace
Wanneer u de webpagina in een browser laadt, kunt u zien hoe de verschillende stijl- en andere renderingaanpassingen die zijn aangebracht in de broncode van de MyWebPartChrome klasse worden weergegeven op de WebPart besturingselementen die in de zone worden weergegeven.
Opmerkingen
Webonderdelen chrome verwijst naar de elementen van de randapparaatgebruikersinterface (UI) die elk WebPart besturingselement of serverbeheer in een WebPartZoneBase zone omkaderen. Het chroom voor een besturingselement bevat de rand, de titelbalk en de pictogrammen, titeltekst en het menu werkwoorden die in de titelbalk worden weergegeven. Het uiterlijk van de chrome is ingesteld op zoneniveau en is van toepassing op alle serverbesturingselementen in de zone.
De besturingsset webonderdelen gebruikt de WebPartChrome klasse om de chrome voor WebPart besturingselementen weer te geven. Daarnaast biedt deze klasse ontwikkelaars een manier om de weergave van afzonderlijke secties (zoals de kop- of voettekst) van de WebPart besturingselementen in een WebPartZoneBase zone aan te passen zonder dat alle rendering voor deze besturingselementen hoeft te worden verwerkt. U kunt bijvoorbeeld de CreateWebPartChromeStyle methode overschrijven om bepaalde specifieke stijlkenmerken aan te passen die zijn toegepast op de WebPartZoneBase zone, maar u kunt vertrouwen op de standaardweergave om de rest te verwerken.
De WebPartChrome klasse bevat verschillende belangrijke methoden die handig zijn als u het weergeven van WebPart besturingselementen wilt overschrijven. Een is de CreateWebPartChromeStyle methode waarmee u de stijlkenmerken van het object kunt wijzigen dat is gekoppeld aan het StyleWebPartChrome object dat wordt gebruikt om een besturingselement weer te geven. Een andere is de WebPartChrome constructor die u gebruikt wanneer u de CreateWebPartChrome methode in een aangepaste WebPartZoneBase klasse overschrijft om een exemplaar van uw aangepaste WebPartChrome object te maken. Een andere handige methode is de RenderPartContents methode die u kunt gebruiken om het weergeven van het inhoudsgebied van besturingselementen in een zone te beheren (in tegenstelling tot chrome-elementen zoals kopteksten, voetteksten en titelbalken). Met de GetWebPartVerbs methode kunt u bepaalde werkwoorden uitsluiten van weergave, als u om een of andere reden niet wilt dat gebruikers deze werkwoorden in de gebruikersinterface zien. Ten slotte kunt u de methode overschrijven als u volledige programmatische controle wilt over alle aspecten van het weergeven van de WebPartRenderWebPart besturingselementen.
Verschillende eigenschappen van de WebPartChrome klasse zijn ook nuttig. De Zone en WebPartManager eigenschappen bieden verwijzingen naar de zone die is gekoppeld aan het WebPartChrome object en het huidige WebPartManager exemplaar.
Notities voor overnemers
Overnemen van de WebPartChrome klasse wanneer u de standaardweergave van bepaalde secties of WebPart serverbesturingselementen wilt overschrijven. U kunt desgewenst de CreateWebPartChromeStyle(WebPart, PartChromeType) methode, de GetWebPartVerbs(WebPart) methode en met name de RenderPartContents(HtmlTextWriter, WebPart) of RenderWebPart(HtmlTextWriter, WebPart) methoden overschrijven om de rendering aan te passen. Als u uw aangepaste WebPartChrome klasse wilt gebruiken voor de WebPart besturingselementen in een zone, ontwikkelt u een aangepaste zone die is afgeleid van de klasse en overschrijft u de WebPartZoneBaseCreateWebPartChrome() bijbehorende methode. Zie de sectie Voorbeeld voor meer informatie over het gebruik van een onderliggend WebPartChrome object in een zone.
Constructors
| Name | Description |
|---|---|
| WebPartChrome(WebPartZoneBase, WebPartManager) |
Initialiseert een nieuw exemplaar van het besturingselement. |
Eigenschappen
| Name | Description |
|---|---|
| DragDropEnabled |
Hiermee wordt een waarde opgehaald die aangeeft of besturingselementen naar en uit de zone kunnen worden gesleept. |
| WebPartManager |
Hiermee wordt een verwijzing naar het huidige WebPartManager exemplaar opgehaald. |
| Zone |
Hiermee wordt een verwijzing naar de gekoppelde WebPartZoneBase zone opgehaald. |
Methoden
| Name | Description |
|---|---|
| CreateWebPartChromeStyle(WebPart, PartChromeType) |
Hiermee maakt u het stijlobject dat stijlkenmerken levert voor elk WebPart besturingselement dat door het WebPartChrome object wordt weergegeven. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| FilterWebPartVerbs(WebPartVerbCollection, WebPart) |
Hiermee worden specifieke werkwoorden uitgesloten van weergave, op basis van criteria van een ontwikkelaar. |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetWebPartChromeClientID(WebPart) |
Hiermee haalt u de client-id voor het WebPartChrome object op zoals weergegeven op een webpagina. |
| GetWebPartTitleClientID(WebPart) |
Hiermee haalt u de client-id op voor de tabelcel die de titel voor een WebPart besturingselement bevat. |
| GetWebPartVerbs(WebPart) |
Hiermee haalt u een verzameling werkwoorden op die moeten worden weergegeven met een WebPart besturingselement. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| PerformPreRender() |
Voert taken uit die moeten worden uitgevoerd voordat u besturingselementen weer geeft WebPart . |
| RenderPartContents(HtmlTextWriter, WebPart) |
Hiermee wordt het hoofdinhoudsgebied van een WebPart besturingselement weergegeven, met uitzondering van de kop- en voettekst. |
| RenderWebPart(HtmlTextWriter, WebPart) |
Geeft een volledig WebPart besturingselement weer met alle bijbehorende secties. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |