Dicas .NET - Criando Custom Controls não visuais

Veja nesta dica como criar controles não visual, uma nova proposta do .NET 2.0.

Criando Custom Controls não visuais

 

As páginas web no .NET 2.0 não tem mais suporte completo a Components. Você até pode, clicando com o botão direito e selecionando View Component Designer, inserir Components na página, mas seus componentes não conseguem, por exemplo, ter acesso aos WebControls da página. Afinal, o que aparece no ComponentDesigner está inserido dentro da classe do code behind, enquanto que os WebControls não são mais declarados em code behind.

O que a MS deseja é que passemos a trabalhar com custom controls não visuais, que gerem tags de configuração, como acontece com DataSources, por exemplo.

Mas como fazer um controle não visual? Simples: Precisamos criar um controlDesigner que faça a geração do bloco cinza como acontece com o DataSource.

O processo é bem simples, veja:

 

Imports System.ComponentModel

<Designer(GetType(qualquerDesigner))>

Public Class qualquer

Inherits System.Web.UI.Control

End Class

 

Public Class qualquerDesigner

Inherits System.Web.UI.Design.ControlDesigner

 

Public Overrides Function GetDesignTimeHtml() As String

Return (Me.CreatePlaceHolderDesignTimeHtml())

End Function

End Class

 

Pronto, Qualquer é um controle não visual, qualquerDesigner é o designer que garante a aparência dele em design time (o bloco cinza). Quando ligamos um designer em um custom control o design visual passa a ser determinado pelo getDesignTimeHTML do designer.

O método CreatePlaceHolderDesignTimeHTML gera o HTML para gerar o bloco cinza típico dos DataSources.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados