WebPartChrome Sınıf

Tanım

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)

Şunlara uygulanır

Ayrıca bkz.