WebPartChrome(WebPartZoneBase, WebPartManager) 构造函数

定义

初始化控件的新实例。Initializes a new instance of the control.

public:
 WebPartChrome(System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, System::Web::UI::WebControls::WebParts::WebPartManager ^ manager);
public WebPartChrome (System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, System.Web.UI.WebControls.WebParts.WebPartManager manager);
new System.Web.UI.WebControls.WebParts.WebPartChrome : System.Web.UI.WebControls.WebParts.WebPartZoneBase * System.Web.UI.WebControls.WebParts.WebPartManager -> System.Web.UI.WebControls.WebParts.WebPartChrome
Public Sub New (zone As WebPartZoneBase, manager As WebPartManager)

参数

zone
WebPartZoneBase

关联的 WebPartZoneBase 控件。The associated WebPartZoneBase control.

manager
WebPartManager

当前页中的 WebPartManager 控件。The WebPartManager control on the current page.

例外

zonenullzone is null.

示例

下面的代码示例演示了两种情况。The following code example demonstrates two things. 首先,它 MyWebPartChrome 通过重写名为的 CreateWebPartChrome 派生区域中的方法来创建自定义类的新实例 WebPartZoneBase MyZoneFirst, it creates a new instance of the custom class MyWebPartChrome by overriding the CreateWebPartChrome method in a derived WebPartZoneBase zone called MyZone. 其次,在类的构造函数中 MyWebPartChrome ,它将构造函数的参数中的对象分配给可在类中使用的私有字段。Second, in the constructor of the MyWebPartChrome class, it assigns the objects in the parameters of the constructor to private fields that can be used within the class. 因此,此示例为您提供了一种 WebPartManagerZone 可访问和属性之前访问关联区域和对象的方法 WebPartManagerThis example thus gives you a way to access the associated zone and WebPartManager object even in the constructor, before the Zone and WebPartManager properties are accessible. 最后请注意,若要使构造函数正常运行,还必须在方法声明中调用基构造函数。Finally, note that for the constructor to work, the base constructor must also be invoked as part of the method declaration.

下面的代码包含两个自定义类。The following code contains the two custom classes. 有关运行示例所需的完整代码(包括承载这些控件的网页),请参阅类概述主题的 "示例" 部分 WebPartChromeFor the full code required to run the example, including the Web page to host these controls, see the Example section of the WebPartChrome class overview topic.

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

注解

WebPartChrome初始化类的新实例 WebPartChromeThe WebPartChrome initializes a new instance of the WebPartChrome class. 它主要由 WebPartZoneBase 区域在其方法中使用 CreateWebPartChrome ,以创建对象的实例 WebPartChrome ,该对象处理 chrome 呈现以及 WebPart 区域中控件的任何自定义呈现。It is used primarily by a WebPartZoneBase zone in its CreateWebPartChrome method to create an instance of the WebPartChrome object that handles the chrome rendering and any custom rendering for WebPart controls in the zone.

适用于