Compartilhar via


WebPartDesigner Classe

Definição

Fornece suporte visual em tempo de design para WebPart controles.

public ref class WebPartDesigner : System::Web::UI::Design::WebControls::WebParts::PartDesigner
public class WebPartDesigner : System.Web.UI.Design.WebControls.WebParts.PartDesigner
type WebPartDesigner = class
    inherit PartDesigner
Public Class WebPartDesigner
Inherits PartDesigner
Herança

Exemplos

O exemplo de código a seguir mostra a interação entre um WebPart controle e seu associado WebPartDesigner. O WebPart controle contém um Calendar controle do qual o usuário final seleciona seu aniversário, um Button controle para enviar a seleção e um Label controle para exibir uma mensagem no aniversário do usuário. O WebPartDesigner verifica se o controle associado é do tipo esperado e, em seguida, personaliza a renderização em tempo de design do controle dito. Observe que as personalizações visuais do designer são visíveis somente no momento do design, enquanto as do controle associado ficam visíveis no tempo de execução e no tempo de design.

Todos os métodos substituídos neste exemplo derivam da ControlDesigner classe base. Para outros membros disponíveis e seu uso, consulte System.Web.UI.Design.ControlDesigner.

using System;
using System.Security.Permissions;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.Design.WebControls.WebParts;
using System.ComponentModel;

/// <summary>
/// BirthdayPart demonstrates some of the most
/// common overrides of members of the WebPart
/// class. BirthdayPartDesigner shows how to 
/// customize the rendering of a custom WebPart
/// control.
/// </summary>
namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand, 
    Level=AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
    Level=AspNetHostingPermissionLevel.Minimal)]
  [Designer(typeof(BirthdayPartDesigner))]
  public class BirthdayPart : WebPart
  {
    private DateTime birthDate;
    Calendar input;
    Label displayContent;

    public BirthdayPart()
    {
      this.AllowClose = false;
      this.Title = "Enter your birthday";
    }

    [
      Personalizable(PersonalizationScope.User, true),
      WebBrowsable()
    ]
    public DateTime BirthDate
    {
      get { return birthDate; }
      set { birthDate = value; }
    }
    
    // Set the appearance of the control at run time.
    protected override void CreateChildControls()
    {
      Controls.Clear();
      input = new Calendar();
      this.Controls.Add(input);
      Button update = new Button();
      update.Text = "Submit";
      update.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(update);
      displayContent = new Label();
      displayContent.BackColor = 
      System.Drawing.Color.LightBlue;
      Literal br = new Literal();
      br.Text = "<br />";
      if ((this.birthDate.Day == DateTime.Now.Day)
        && (this.birthDate.Month == DateTime.Now.Month))
      {
        displayContent.Text = "Happy Birthday!";
        this.Controls.Add(br);
        this.Controls.Add(displayContent);
      }
    }

    private void submit_Click(object sender, EventArgs e)
    {
      this.birthDate = input.SelectedDate;
    }
  }

  public class BirthdayPartDesigner : WebPartDesigner
  {
    public override void Initialize(IComponent component)
    {
      // Verify that the associated control is a BirthdayPart.
      if (!typeof(BirthdayPart).IsInstanceOfType(component))
      {
        throw new ArgumentException("The specified control is not of type 'BirthdayPart'", "component");
      }
      base.Initialize(component);
    }

    // Here is where you make customizations
    // to design time appearance that will not
    // be visible to the end user.
    public override string GetDesignTimeHtml()
    {
      string designTimeHtml = null;
      try
      {
        designTimeHtml = base.GetDesignTimeHtml();
        string s = "<hr /><hr />I just added these lines to the"
          + " bottom of the control.<hr /><hr /></div>";
        designTimeHtml = designTimeHtml.Replace("</div>", s);
      }
      catch (Exception ex)
      {
        designTimeHtml = GetErrorDesignTimeHtml(ex);
      }
      finally
      {
        // undo any changes in the try block
      }

      if ((designTimeHtml == null) || (designTimeHtml.Length == 0))
      {
        designTimeHtml = GetEmptyDesignTimeHtml();
      }
      return designTimeHtml;
    }

    // This method normally returns a blank string.
    // Override to return a meaningful message.
    protected override string GetEmptyDesignTimeHtml()
    {
      return CreatePlaceHolderDesignTimeHtml(
        "<hr />If the page developer forgot to fill in a " +
        "required property you could tell them here.<hr />");
    }
    
    // Add specific text to the generic error message.
    protected override string GetErrorDesignTimeHtml(Exception e)
    {
      string s = "<hr />The control failed to render.";
      return(s + e.Message + "<hr />");
    }
  }
}
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.Design.WebControls.WebParts
Imports System.ComponentModel

' BirthdayPart demonstrates some of the most
' common overrides of members of the WebPart
' class. BirthdayPartDesigner shows how to 
' customize the rendering of a custom WebPart
' control.
Namespace Samples.AspNet.VB.Controls
    <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    <Designer(GetType(BirthdayPartDesigner))> _
    Public Class BirthdayPart
        Inherits WebPart
        Private m_birthDate As DateTime
        Private input As Calendar
        Private displayContent As Label

        Public Sub New()
            Me.AllowClose = False
            Me.Title = "Enter your birthday"
        End Sub

        <Personalizable(PersonalizationScope.User, True), WebBrowsable()> _
        Public Property BirthDate() As DateTime
            Get
                Return m_birthDate
            End Get
            Set(value As DateTime)
                m_birthDate = value
            End Set
        End Property

        ' Set the appearance of the control at run time.
        Protected Overrides Sub CreateChildControls()
            Controls.Clear()
            input = New Calendar()
            Me.Controls.Add(input)
            Dim update As New Button()
            update.Text = "Submit"
            AddHandler update.Click, New EventHandler(AddressOf Me.submit_Click)
            Me.Controls.Add(update)
            displayContent = New Label()
            displayContent.BackColor = System.Drawing.Color.LightBlue
            Dim br As New Literal()
            br.Text = "<br />"
            If (Me.m_birthDate.Day = DateTime.Now.Day) AndAlso (Me.m_birthDate.Month = DateTime.Now.Month) Then
                displayContent.Text = "Happy Birthday!"
                Me.Controls.Add(br)
                Me.Controls.Add(displayContent)
            End If
        End Sub

        Private Sub submit_Click(sender As Object, e As EventArgs)
            Me.m_birthDate = input.SelectedDate
        End Sub
    End Class

    Public Class BirthdayPartDesigner
        Inherits WebPartDesigner
        Public Overrides Sub Initialize(component As IComponent)
            ' Verify that the associated control is a BirthdayPart.
            If Not GetType(BirthdayPart).IsInstanceOfType(component) Then
                Throw New ArgumentException("The specified control is not of type 'BirthdayPart'", "component")
            End If
            MyBase.Initialize(component)
        End Sub

        ' Here is where you make customizations
        ' to design time appearance that will not
        ' be visible to the end user.
        Public Overrides Function GetDesignTimeHtml() As String
            Dim designTimeHtml As String = Nothing
            Try
                designTimeHtml = MyBase.GetDesignTimeHtml()
                Dim s As String = "<hr /><hr />I just added these lines to the" & " bottom of the control.<hr /><hr /></div>"
                designTimeHtml = designTimeHtml.Replace("</div>", s)
            Catch ex As Exception
                designTimeHtml = GetErrorDesignTimeHtml(ex)
                ' undo any changes in the try block
            Finally
            End Try

            If (designTimeHtml Is Nothing) OrElse (designTimeHtml.Length = 0) Then
                designTimeHtml = GetEmptyDesignTimeHtml()
            End If
            Return designTimeHtml
        End Function

        ' This method normally returns a blank string.
        ' Override to return a meaningful message.
        Protected Overrides Function GetEmptyDesignTimeHtml() As String
            Return CreatePlaceHolderDesignTimeHtml("<hr />If the page developer forgot to fill in a " & "required property you could tell them here.<hr />")
        End Function

        ' Add specific text to the generic error message.
        Protected Overrides Function GetErrorDesignTimeHtml(e As Exception) As String
            Dim s As String = "<hr />The control failed to render."
            Return (s & e.Message & "<hr />")
        End Function
    End Class
End Namespace

Comentários

A WebPartDesigner classe fornece a representação visual para WebPart controles em tempo de design. Ele é derivado da PartDesigner classe e adiciona validação para verificar se o controle associado é um WebPart controle ou tipo derivado.

WebPartDesigner herda uma UsePreviewControl propriedade de seu pai que é sempre definida como true. Isso faz com que o ambiente de design visual gere um View controle para manter uma cópia temporária da superfície de WebPart design; essa cópia é então mantida na marcação. Se você substituir a UsePreviewControl propriedade a ser retornada false, o ambiente de design visual gerará marcação diretamente do controle real WebPart .

Os designers de Web Parts geralmente agem muito como designers de controle regulares; os métodos principais para definir a aparência em tempo de design derivam da ControlDesigner classe. Especificamente, você pode substituir o GetDesignTimeHtml método para alterar a marcação de tempo de design associada ao controle. Você também pode substituir os métodos e GetEmptyDesignTimeHtml os GetErrorDesignTimeHtml métodos para lidar com erros e cadeias de caracteres vazias (""), respectivamente.

Construtores

Nome Description
WebPartDesigner()

Inicializa uma nova instância da classe WebPartDesigner.

Propriedades

Nome Description
ActionLists

Obtém a coleção de lista de ações do designer de controle.

(Herdado de ControlDesigner)
AllowResize

Obtém um valor que indica se o controle pode ser redimensionado no ambiente de tempo de design.

(Herdado de ControlDesigner)
AssociatedComponents

Obtém a coleção de componentes associados ao componente gerenciado pelo designer.

(Herdado de ComponentDesigner)
AutoFormats

Obtém a coleção de esquemas de formatação automática predefinidos a serem exibidos na caixa de diálogo Formato Automático para o controle associado em tempo de design.

(Herdado de ControlDesigner)
Behavior
Obsoleto.

Obtém ou define o comportamento DHTML associado ao designer.

(Herdado de HtmlControlDesigner)
Component

Obtém o componente que este designer está projetando.

(Herdado de ComponentDesigner)
DataBindings

Obtém a coleção de associações de dados para o controle atual.

(Herdado de HtmlControlDesigner)
DataBindingsEnabled

Obtém um valor que indica se a associação de dados tem suporte pela região que contém o controle associado.

(Herdado de ControlDesigner)
DesignerState

Obtém um objeto usado para persistir dados para o controle associado em tempo de design.

(Herdado de ControlDesigner)
DesignTimeElement
Obsoleto.

Obtém o objeto de tempo de design que representa o controle associado ao HtmlControlDesigner objeto na superfície de design.

(Herdado de HtmlControlDesigner)
DesignTimeElementView
Obsoleto.

Obtém o objeto de controle de exibição para o designer de controle.

(Herdado de ControlDesigner)
DesignTimeHtmlRequiresLoadComplete
Obsoleto.

Obtém um valor que indica se o host de design deve concluir o carregamento antes que o GetDesignTimeHtml método possa ser chamado.

(Herdado de ControlDesigner)
Expressions

Obtém as associações de expressão para o controle atual em tempo de design.

(Herdado de HtmlControlDesigner)
HidePropertiesInTemplateMode

Obtém um valor que indica se as propriedades do controle associado estão ocultas quando o controle está no modo de modelo.

(Herdado de ControlDesigner)
ID

Obtém ou define a cadeia de caracteres de ID para o controle.

(Herdado de ControlDesigner)
InheritanceAttribute

Obtém um atributo que indica o tipo de herança do componente associado.

(Herdado de ComponentDesigner)
Inherited

Obtém um valor que indica se esse componente é herdado.

(Herdado de ComponentDesigner)
InTemplateMode

Obtém um valor que indica se o controle está no modo de exibição ou edição de modelo no host de design. A InTemplateMode propriedade é somente leitura.

(Herdado de ControlDesigner)
IsDirty
Obsoleto.

Obtém ou define um valor que indica se o controle do servidor Web foi marcado como alterado.

(Herdado de ControlDesigner)
ParentComponent

Obtém o componente pai deste designer.

(Herdado de ComponentDesigner)
ReadOnly
Obsoleto.

Obtém ou define um valor que indica se as propriedades do controle são somente leitura no tempo de design.

(Herdado de ControlDesigner)
RootDesigner

Obtém o designer de controle da página Web Forms que contém o controle associado.

(Herdado de ControlDesigner)
ShadowProperties

Obtém uma coleção de valores de propriedade que substituem as configurações do usuário.

(Herdado de ComponentDesigner)
ShouldCodeSerialize
Obsoleto.

Obtém ou define um valor que indica se uma declaração de campo deve ser criada para o controle no arquivo code-behind do documento de design atual durante a serialização.

(Herdado de HtmlControlDesigner)
Tag

Obtém um objeto que representa o elemento de marcação HTML para o controle associado.

(Herdado de ControlDesigner)
TemplateGroups

Obtém uma coleção de grupos de modelos, cada um contendo uma ou mais definições de modelo.

(Herdado de ControlDesigner)
UsePreviewControl

Obtém um valor que indica se o designer deve usar uma cópia temporária em vez do controle real associado ao designer para gerar a marcação de tempo de design.

(Herdado de PartDesigner)
Verbs

Obtém os verbos de tempo de design compatíveis com o componente associado ao designer.

(Herdado de ComponentDesigner)
ViewControl

Obtém ou define um controle de servidor Web que pode ser usado para visualizar a marcação HTML em tempo de design.

(Herdado de ControlDesigner)
ViewControlCreated

Obtém ou define um valor que indica se um View controle foi criado para exibição na superfície de design.

(Herdado de ControlDesigner)
Visible

Obtém um valor que indica se o controle está visível no momento do design.

(Herdado de ControlDesigner)

Métodos

Nome Description
CreateChildControls()

Cria os controles filho desse CompositeControl controle.

(Herdado de CompositeControlDesigner)
CreateErrorDesignTimeHtml(String, Exception)

Cria a marcação HTML para exibir uma mensagem de erro de exceção especificada em tempo de design.

(Herdado de ControlDesigner)
CreateErrorDesignTimeHtml(String)

Cria a marcação HTML para exibir uma mensagem de erro especificada em tempo de design.

(Herdado de ControlDesigner)
CreatePlaceHolderDesignTimeHtml()

Fornece uma representação simples de espaço reservado retangular que exibe o tipo e a ID do controle.

(Herdado de ControlDesigner)
CreatePlaceHolderDesignTimeHtml(String)

Fornece uma representação simples de espaço reservado retangular que exibe o tipo e a ID do controle e também instruções ou informações especificadas adicionais.

(Herdado de ControlDesigner)
CreateViewControl()

Retorna uma cópia do controle associado para exibição ou renderização na superfície de design.

(Herdado de ControlDesigner)
Dispose()

Libera todos os recursos usados pelo ComponentDesigner.

(Herdado de ComponentDesigner)
Dispose(Boolean)

Libera os recursos não gerenciados que são usados pelo HtmlControlDesigner objeto e, opcionalmente, libera os recursos gerenciados.

(Herdado de HtmlControlDesigner)
DoDefaultAction()

Cria uma assinatura de método no arquivo de código-fonte para o evento padrão no componente e navega o cursor do usuário para esse local.

(Herdado de ComponentDesigner)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBounds()

Recupera as coordenadas do retângulo que representa os limites do controle, conforme exibido na superfície de design.

(Herdado de ControlDesigner)
GetDesignTimeHtml()

Obtém o HTML usado para representar o controle em tempo de design.

(Herdado de CompositeControlDesigner)
GetDesignTimeHtml(DesignerRegionCollection)

Recupera a marcação HTML para exibir o controle e preenche a coleção com as regiões atuais do designer de controle.

(Herdado de ControlDesigner)
GetEditableDesignerRegionContent(EditableDesignerRegion)

Retorna o conteúdo de uma região editável da exibição de tempo de design do controle associado.

(Herdado de ControlDesigner)
GetEmptyDesignTimeHtml()

Recupera a marcação HTML para representar um controle de servidor Web em tempo de design que não terá representação visual em tempo de execução.

(Herdado de ControlDesigner)
GetErrorDesignTimeHtml(Exception)

Recupera a marcação HTML que fornece informações sobre a exceção especificada.

(Herdado de ControlDesigner)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetPersistenceContent()

Recupera a marcação HTML interna persistente do controle em tempo de design.

(Herdado de ControlDesigner)
GetPersistInnerHtml()
Obsoleto.

Recupera a marcação HTML interna persistente do controle.

(Herdado de ControlDesigner)
GetService(Type)

Tenta recuperar o tipo de serviço especificado do site de modo de design do componente do designer.

(Herdado de ComponentDesigner)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetViewRendering()

Recupera um objeto que contém a marcação de tempo de design para o conteúdo e as regiões do controle associado.

(Herdado de ControlDesigner)
Initialize(IComponent)

Associa o designer a um controle e valida que o controle é um WebPart controle.

InitializeExistingComponent(IDictionary)

Reinicializa um componente existente.

(Herdado de ComponentDesigner)
InitializeNewComponent(IDictionary)

Inicializa um componente recém-criado.

(Herdado de ComponentDesigner)
InitializeNonDefault()
Obsoleto.
Obsoleto.

Inicializa as configurações de um componente importado que já está inicializado em configurações diferentes dos padrões.

(Herdado de ComponentDesigner)
Invalidate()

Invalida toda a área do controle exibida na superfície de design e sinaliza o designer de controle para redesenhar o controle.

(Herdado de ControlDesigner)
Invalidate(Rectangle)

Invalida a área especificada do controle que é exibida na superfície de design e sinaliza o designer de controle para redesenhar o controle.

(Herdado de ControlDesigner)
InvokeGetInheritanceAttribute(ComponentDesigner)

Obtém o InheritanceAttribute da especificada ComponentDesigner.

(Herdado de ComponentDesigner)
IsPropertyBound(String)
Obsoleto.

Recupera um valor que indica se a propriedade especificada no controle associado está associada a dados.

(Herdado de ControlDesigner)
Localize(IDesignTimeResourceWriter)

Usa o gravador de recursos fornecido para manter as propriedades localizáveis do controle associado a um recurso no host de design.

(Herdado de ControlDesigner)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnAutoFormatApplied(DesignerAutoFormat)

Chamado quando um esquema de formatação automática predefinido foi aplicado ao controle associado.

(Herdado de ControlDesigner)
OnBehaviorDetaching()
Obsoleto.

Chamado quando um comportamento desassocia do elemento.

(Herdado de HtmlControlDesigner)
OnBindingsCollectionChanged(String)
Obsoleto.

Chamado quando a coleção de associação de dados é alterada.

(Herdado de ControlDesigner)
OnClick(DesignerRegionMouseEventArgs)

Chamado pelo host de design quando o usuário clica no controle associado em tempo de design.

(Herdado de ControlDesigner)
OnComponentChanged(Object, ComponentChangedEventArgs)

Chamado quando o controle associado é alterado.

(Herdado de ControlDesigner)
OnComponentChanging(Object, ComponentChangingEventArgs)

Representa o método que manipulará o ComponentChanging evento para o controle associado.

(Herdado de ControlDesigner)
OnControlResize()
Obsoleto.

Chamado quando o controle de servidor Web associado foi redimensionado no host de design em tempo de design.

(Herdado de ControlDesigner)
OnPaint(PaintEventArgs)

Chamado quando o designer de controle desenha o controle associado na superfície de design, se o CustomPaint valor for true.

(Herdado de ControlDesigner)
OnSetComponentDefaults()
Obsoleto.
Obsoleto.

Define as propriedades padrão do componente.

(Herdado de ComponentDesigner)
OnSetParent()

Fornece uma maneira de executar processamento adicional quando o controle associado é anexado a um controle pai.

(Herdado de HtmlControlDesigner)
PostFilterAttributes(IDictionary)

Permite que um designer altere ou remova itens do conjunto de atributos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PostFilterEvents(IDictionary)

Permite que um designer altere ou remova itens do conjunto de eventos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PostFilterProperties(IDictionary)

Permite que um designer altere ou remova itens do conjunto de propriedades que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PreFilterAttributes(IDictionary)

Permite que um designer adicione ao conjunto de atributos que ele expõe por meio de um TypeDescriptor.

(Herdado de ComponentDesigner)
PreFilterEvents(IDictionary)

Define a lista de eventos expostos em tempo de design para o TypeDescriptor objeto do componente.

(Herdado de HtmlControlDesigner)
PreFilterProperties(IDictionary)

Adiciona ou remove propriedades da grade Propriedades em um host de design em tempo de design ou fornece novas propriedades de tempo de design que podem corresponder às propriedades no controle associado.

(Herdado de ControlDesigner)
RaiseComponentChanged(MemberDescriptor, Object, Object)

Notifica que IComponentChangeService esse componente foi alterado.

(Herdado de ComponentDesigner)
RaiseComponentChanging(MemberDescriptor)

Notifica que IComponentChangeService esse componente está prestes a ser alterado.

(Herdado de ComponentDesigner)
RaiseResizeEvent()
Obsoleto.

Aciona o evento OnControlResize().

(Herdado de ControlDesigner)
RegisterClone(Object, Object)

Registra dados internos em um controle clonado.

(Herdado de ControlDesigner)
SetEditableDesignerRegionContent(EditableDesignerRegion, String)

Especifica o conteúdo de uma região editável do controle em tempo de design.

(Herdado de ControlDesigner)
SetRegionContent(EditableDesignerRegion, String)

Especifica o conteúdo de uma região editável no modo de exibição de tempo de design do controle.

(Herdado de ControlDesigner)
SetViewFlags(ViewFlags, Boolean)

Atribui a enumeração bit a ViewFlags bit especificada ao valor do sinalizador especificado.

(Herdado de ControlDesigner)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
UpdateDesignTimeHtml()

Atualiza a marcação HTML em tempo de design para o controle de servidor Web associado chamando o GetDesignTimeHtml método.

(Herdado de ControlDesigner)

Implantações explícitas de interface

Nome Description
IDesignerFilter.PostFilterAttributes(IDictionary)

Para obter uma descrição desse membro, consulte o PostFilterAttributes(IDictionary) método.

(Herdado de ComponentDesigner)
IDesignerFilter.PostFilterEvents(IDictionary)

Para obter uma descrição desse membro, consulte o PostFilterEvents(IDictionary) método.

(Herdado de ComponentDesigner)
IDesignerFilter.PostFilterProperties(IDictionary)

Para obter uma descrição desse membro, consulte o PostFilterProperties(IDictionary) método.

(Herdado de ComponentDesigner)
IDesignerFilter.PreFilterAttributes(IDictionary)

Para obter uma descrição desse membro, consulte o PreFilterAttributes(IDictionary) método.

(Herdado de ComponentDesigner)
IDesignerFilter.PreFilterEvents(IDictionary)

Para obter uma descrição desse membro, consulte o PreFilterEvents(IDictionary) método.

(Herdado de ComponentDesigner)
IDesignerFilter.PreFilterProperties(IDictionary)

Para obter uma descrição desse membro, consulte o PreFilterProperties(IDictionary) método.

(Herdado de ComponentDesigner)
ITreeDesigner.Children

Para obter uma descrição desse membro, consulte a Children propriedade.

(Herdado de ComponentDesigner)
ITreeDesigner.Parent

Para obter uma descrição desse membro, consulte a Parent propriedade.

(Herdado de ComponentDesigner)

Aplica-se a

Confira também