WebPartChrome Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geliştiricilerin yalnızca bir WebPart bölgedeki veya sunucu denetimlerinin seçili bölümleri için işlemeyi geçersiz kılabilmesini WebPartZoneBase sağlar.
public ref class WebPartChrome
public class WebPartChrome
type WebPartChrome = class
Public Class WebPartChrome
- Devralma
-
WebPartChrome
Örnekler
Aşağıdaki kod örneği, bir WebPartChrome bölgedeki denetimlerin varsayılan işlemesini WebPart geçersiz kılmak için sınıfın WebPartZoneBase nasıl kullanılacağını gösterir.
Kod örneğinin dört bölümü vardır:
Web Bölümleri sayfasındaki görüntü modlarını değiştirmenize olanak tanıyan bir kullanıcı denetimi.
Örnekteki tüm denetimleri barındıran bir Web sayfası.
Özel WebPartZoneBase bölge ve sınıfın kaynak kodunu içeren bir WebPartChrome sınıf.
Örneğin nasıl çalıştığını gösteren bir açıklama.
Kod örneğinin ilk bölümü kullanıcı denetimidir. Kullanıcı denetiminin kaynak kodu başka bir konu başlığından gelir. Bu kod örneğinin çalışması için , İzlenecek Yol: Web Bölümleri Sayfasında Görüntüleme Modlarını Değiştirme konusundan kullanıcı denetimi için .ascx dosyasını edinmeniz ve dosyayı bu kod örneğindeki .aspx sayfasıyla aynı klasöre yerleştirmeniz gerekir.
Örneğin ikinci bölümü Web sayfasıdır. Derlenen bileşeni ve etiket ön ekini kaydetmek için dosyanın üst kısmına yakın bir yönerge olduğunu Register unutmayın. Ayrıca, sayfanın <aspSample:MyZone> öğesini kullanarak özel bölgeye başvurduğunu ve bölge içinde birkaç standart ASP.NET sunucu denetimi içerdiğini unutmayın. Sunucu denetimleri gerçek bir işlevsellik uygulamaz; bunlar burada yalnızca sınıf özelliklerinin işleme bölgelerine nasıl uygulandığını WebPartChrome göstermek için kullanılır. Bu sunucu denetimlerinin gerçek WebPart denetimleri olmasa da, her birinin çalışma zamanında bir GenericWebPart nesnesiyle otomatik olarak sarmalandığını (ASP.NET) WebPart denetimleriyle aynı işlevlere sahip olacağını unutmayın.
<%@ 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>
Kod örneğinin üçüncü bölümü, özel WebPartZoneBase bölge ve WebPartChrome sınıfın kaynağıdır. Özel bölge sınıfının oluşturucusunda kod özelliğini denetler MyZone.RenderVerbsInMenu . değer ise true, fiiller bölgedeki denetimlerin WebPart her biri için bir menüde işlenir. Bu, Web Bölümleri denetim kümesindeki normal, varsayılan davranıştır.
MyZone.RenderVerbsInMenu Özellik değeri, bu özel bölgedeki varsayılan değer falseolan ise, fiiller her denetimin başlık çubuğunda bağlantı olarak ayrı ayrı işlenir. öğesinin bildirildiği <aspSample:MyZone> Web sayfası kodunda, fiillerin denetimlerdeki menülerde görünmesi için RenderVerbsInMenuolarak ayarlanmış bir true öznitelik olduğuna dikkat edin. Bu özelliği denemek için bildirim özniteliğini RenderVerbsInMenu olarak falseayarlayabilir ve fiillerin bağlantı olarak nasıl işlendiğine dikkat edebilirsiniz.
Özel WebPartChrome sınıf, işlemeyi birkaç yöntemde geçersiz kılar ve özel bölge kendi yönteminde MyWebPartChrome sınıfın CreateWebPartChrome bir örneğini oluşturur. Bu, özel işlemeyi sayfaya uygular. Kod örneğinin çalışması için bu kaynak kodu derlemeniz gerekir. Bunu açıkça derleyebilir ve sonuçta elde edilen derlemeyi Web sitenizin Bin klasörüne veya genel derleme önbelleğine yerleştirebilirsiniz. Alternatif olarak, kaynak kodu sitenizin App_Code klasörüne yerleştirebilirsiniz; burada çalışma zamanında dinamik olarak derlenir. Her iki derleme yöntemini de gösteren bir izlenecek yol için bkz . İzlenecek Yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma.
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
Web sayfasını bir tarayıcıya yüklediğinizde, sınıfın kaynak kodunda yapılan çeşitli stil ve diğer işleme özelleştirmelerinin MyWebPartChrome , bölgede işlenen denetimlerde nasıl göründüğünü WebPart görebilirsiniz.
Açıklamalar
Web Bölümleri kromu, bir WebPart bölgede yer alan her WebPartZoneBase denetimi veya sunucu denetimini çerçeveleyen çevre birimi kullanıcı arabirimi (UI) öğelerini ifade eder. Denetimin kromu kenarlığını, başlık çubuğunu ve başlık çubuğunda görünen simgeleri, başlık metnini ve fiil menüsünü içerir. Kromun görünümü bölge düzeyinde ayarlanır ve bölgedeki tüm sunucu denetimleri için geçerlidir.
Web Bölümleri denetim kümesi, denetimler için kromu işlemek için WebPartChrome sınıfını kullanırWebPart. Ayrıca bu sınıf, geliştiricilerin bu denetimlerin tüm işlemelerini işlemek zorunda kalmadan bir bölgedeki denetimlerin tek tek bölümlerinin WebPart (üst bilgi veya alt bilgi gibi) işlenmesini özelleştirmesi için bir WebPartZoneBase yol sağlar. Örneğin, bölgeye uygulanan bazı belirli stil özniteliklerini özelleştirmek için CreateWebPartChromeStyle yöntemini geçersiz kılabilirsinizWebPartZoneBase, ancak gerisini işlemek için varsayılan işlemeye güvenebilirsiniz.
sınıfı, WebPartChrome denetimlerin işlenmesini WebPart geçersiz kılmak istediğinizde yararlı olan birkaç önemli yöntem içerir. Bunlardan biri, denetimi işlemek için kullanılan nesneyle CreateWebPartChromeStyle ilişkili nesnenin Style stil özniteliklerini değiştirmenize olanak tanıyan yöntemdirWebPartChrome. Bir diğeri, WebPartChrome özel nesnenizin CreateWebPartChrome bir örneğini oluşturmak için özel WebPartZoneBase bir sınıfta yöntemini geçersiz kılarken WebPartChrome kullandığınız oluşturucudur. Bir diğer kullanışlı yöntem, bir bölgedeki denetimlerin içerik alanının işlenmesini denetlemek için kullanabileceğiniz yöntemdir RenderPartContents (üst bilgiler, alt bilgiler ve başlık çubukları gibi chrome öğelerinin aksine). GetWebPartVerbs yöntemi, herhangi bir nedenle kullanıcıların bu fiilleri kullanıcı arabiriminde görmesini istemiyorsanız belirli fiillerin işlenmesini dışlamanıza olanak tanır. Son olarak, denetimleri işlemenin WebPart tüm yönleri üzerinde tam programlı denetim istiyorsanız, yöntemini geçersiz kılabilirsiniz RenderWebPart .
Sınıfın WebPartChrome çeşitli özellikleri de yararlıdır. Zone ve WebPartManager özellikleri, sırasıyla nesne ve geçerli WebPartChrome örnekle WebPartManager ilişkili bölgeye başvurular sağlar.
Devralanlara Notlar
veya sunucu denetimlerinin belirli bölümlerinin WebPartChrome varsayılan işlemesini geçersiz kılmak istediğinizde sınıfından WebPart devralın. İşlemeyi CreateWebPartChromeStyle(WebPart, PartChromeType) özelleştirmek için isteğe bağlı olarak yöntemini, GetWebPartVerbs(WebPart) yöntemini ve özellikle RenderPartContents(HtmlTextWriter, WebPart) veya RenderWebPart(HtmlTextWriter, WebPart) yöntemlerini geçersiz kılabilirsiniz. Bir bölgedeki denetimler için özel WebPartChrome sınıfınızı kullanmak için WebPart sınıfından türetilmiş bir özel bölge geliştirin WebPartZoneBase ve yöntemini geçersiz kılın CreateWebPartChrome() . Bir bölgede alt WebPartChrome nesne kullanma hakkında ayrıntılı bilgi için Örnek bölümüne bakın.
Oluşturucular
| Name | Description |
|---|---|
| WebPartChrome(WebPartZoneBase, WebPartManager) |
Denetimin yeni bir örneğini başlatır. |
Özellikler
| Name | Description |
|---|---|
| DragDropEnabled |
Denetimlerin bölgeye sürüklenip sürüklenemeyeceğini gösteren bir değer alır. |
| WebPartManager |
Geçerli WebPartManager örneğe başvuru alır. |
| Zone |
İlişkili WebPartZoneBase bölgeye başvuru alır. |
Yöntemler
| Name | Description |
|---|---|
| CreateWebPartChromeStyle(WebPart, PartChromeType) |
Nesne tarafından WebPart işlenen her WebPartChrome denetim için stil öznitelikleri sağlayan stil nesnesini oluşturur. |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| FilterWebPartVerbs(WebPartVerbCollection, WebPart) |
Geliştirici tarafından sağlanan ölçütlere göre belirli fiillerin işlenmesini dışlar. |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| GetWebPartChromeClientID(WebPart) |
Web sayfasında işlendiği şekilde nesnenin WebPartChrome istemci kimliğini alır. |
| GetWebPartTitleClientID(WebPart) |
Denetimin başlığını WebPart içeren tablo hücresinin istemci kimliğini alır. |
| GetWebPartVerbs(WebPart) |
Bir denetimle WebPart işlenmesi gereken fiil koleksiyonunu alır. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| PerformPreRender() |
İşleme denetimlerinden önce WebPart yapılması gereken görevleri gerçekleştirir. |
| RenderPartContents(HtmlTextWriter, WebPart) |
Üst bilgi ve alt bilgi hariç bir denetimin ana içerik alanını WebPart işler. |
| RenderWebPart(HtmlTextWriter, WebPart) |
Tüm bölümleriyle tam WebPart bir denetim oluşturur. |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |