WebPartChrome Sınıf

Tanım

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 falsebu ö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 trueolarak ayarlanmış bir RenderVerbsInMenu öznitelik olduğuna dikkat edin. Bu özelliği denemek için bildirim temelli RenderVerbsInMenu özniteliğini 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 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)

Şunlara uygulanır

Ayrıca bkz.