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 bir bölgedeki veya sunucu denetimlerinin WebPartZoneBase yalnızca seçili bölümleri için işlemeyi geçersiz kılabilmesini WebPart 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 bölgedeki denetimlerin WebPartZoneBase varsayılan işlenmesini WebPartChromeWebPart geçersiz kılmak için sınıfının 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. Derlenmiş 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 öğesini <aspSample:MyZone>
kullanarak özel bölgeye başvurduğunu ve bölge içinde çeşitli standart ASP.NET sunucu denetimleri 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 WebPartChrome uygulandığını göstermek için kullanılır. Bu sunucu denetimlerinin gerçek WebPart denetimler olmasa da, her biri çalışma zamanında bir GenericWebPart nesneyle otomatik olarak sarmalanır (ASP.NET tarafından), bu nedenle denetimlerle aynı işlevlere WebPart sahip olur.
<%@ 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 false
bu özel bölgede varsayılan değer olan 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 true
olarak ayarlanmış bir RenderVerbsInMenu
öznitelik olduğuna dikkat edin. Bu özelliği denemek için bildirim temelli RenderVerbsInMenu
özniteliğini olarak false
ayarlayabilir 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 CreateWebPartChrome sınıfın MyWebPartChrome
bir örneğini oluşturur. Bu, özel işlemeyi sayfaya uygular. Kod örneğinin çalışması için bu kaynak kodunu 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 koyabilirsiniz; 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 WebPartZoneBase bölgede bulunan her WebPart 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 WebPart sınıfını kullanırWebPartChrome. Buna ek olarak, bu sınıf geliştiricilerin söz konusu denetimler için tüm işlemeyi 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 WebPartZoneBase yöntemini geçersiz kılabilirsinizCreateWebPartChromeStyle, 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, bir denetimi işlemek için kullanılan nesneyle WebPartChrome ilişkili nesnenin Style stil özniteliklerini değiştirmenize olanak tanıyan yöntemidirCreateWebPartChromeStyle. Bir diğeri, WebPartChrome özel nesnenizin WebPartChrome bir örneğini oluşturmak için özel WebPartZoneBase bir sınıfta yöntemini geçersiz kılarken CreateWebPartChrome 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 bilgi, alt bilgi ve başlık çubukları gibi krom öğelerinin aksine). yöntemi GetWebPartVerbs , herhangi bir nedenle kullanıcıların bu fiilleri kullanıcı arabiriminde görmesini istemiyorsanız belirli fiilleri işlenmekten 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ın çeşitli özellikleri WebPartChrome de yararlıdır. Zone ve WebPartManager özellikleri, sırasıyla nesne ve geçerli WebPartManager örnekle WebPartChrome 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
WebPartChrome(WebPartZoneBase, WebPartManager) |
Denetimin yeni bir örneğini başlatır. |
Özellikler
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
CreateWebPartChromeStyle(WebPart, PartChromeType) |
Nesne tarafından WebPartChrome işlenen her WebPart 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() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
GetWebPartChromeClientID(WebPart) |
Web sayfasında işlenen 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 Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
PerformPreRender() |
Denetimleri işlemeden WebPart önce yapılması gereken görevleri gerçekleştirir. |
RenderPartContents(HtmlTextWriter, WebPart) |
Üst bilgi ve alt bilgi hariç, denetimin WebPart ana içerik alanını işler. |
RenderWebPart(HtmlTextWriter, WebPart) |
Tüm bölümleriyle tam WebPart bir denetim oluşturur. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |