![]() |
||||||||
|
|
||||||||
![]() ![]()
![]() Gostou
da Página?
Então para um amigo! |
Criando um Custom WebControl É muito comum em .NET vermos livros e artigos explicando a criação de WebControls. Mas a criação de WebControls que normalmente é explicada é a criação feita com uso de arquivos ASCX. Os WebControls montados com arquivos ASCX são WebControls montados através de técnicas de composição, não herança. Além disso, apesar de serem reutilizáveis, sua reutilização envolve a própria cópia do código fonte, o arquivos ASCX e o arquivo ASCX.VB. Além disso os componentes ASCX não são visualizados/manipulados da mesma forma que os WebControls tradicionais, o que gera dificuldades e limitações no trabalho com eles. A alternativa é, ao invés de criarmos um ASCX, criarmos um Custom Web Control. Normalmente mantemos o Custom Web Control em um projeto separado, uma WebControl Library, que ao ser compilada se transforma em um assembly com extensão .dll Quando criamos um projeto do tipo WebControl Library o Visual Studio já cria para nós um componente, CustomWebControl.vb, só precisamos renomea-lo e fazer a codificação do componente. Vamos fazer um componente bem simples como primeiro exemplo. Vamos fazer um componente que nos permita exibir mensagens para o usuário na forma de msgbox, na verdade alert do javascript. É muito comum termos mensagens assim para exibir, tal como "Registro gravado com sucesso !" e mensagens do gênero, que gostaríamos de exibir mas não gostariamos que permanecessem na página, gostariamos apenas de dar um pequeno aviso ao usuário. O primeiro passo é definirmos o nome do nosso componente. Vamos chama-lo de mensagem. Devemos trocar o nome em 3 lugares :
O próximo passo será gerar propriedades e métodos para nosso componente. Veja as propriedades e métodos que poderemos gerar :
Veja como fica o código até este ponto : Dim _text As String
Dim Emensagem As Boolean
<Bindable(True),Category("Appearance"), DefaultValue("")> Property [Text]() As String
Get
Return _text
End Get
Set(ByVal Value As String)
_text = Value
End Set
End Property
Public Property ExibeMensagem() As Boolean
Get
Return (Emensagem)
End Get
Set(ByVal Value As Boolean)
Emensagem = Value
End Set
End Property
Public Sub Exibir(ByVal msg As String)
Text = msg
ExibeMensagem = True
End Sub
O próximo passo é programarmos a renderização do componente. Chamamos de renderização o processo de geração do código HTML do componente para o client. Encontramos no componente o método Render. Deveremos alterar o código padrão do Render para gerarmos o script que irá exibir a mensagem. Veja como fica : Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
If ExibeMensagem Then
Dim f As New System.Text.StringBuilder()
f.Append("<script for=""window"" event=""onload"">")
f.Append("alert(""" & Text & """)" & vbCrLf)
f.Append("</script>")
Me.Page.RegisterStartupScript("MSG", f.ToString)
End If
End Sub
Agora precisaremos apenas fazer uso do componente. Depois de termos compilado a Web Control Library poderemos fazer reference para ela em uma aplicação web qualquer. Tendo feito references, deveremos clicar com o botão direito na toolbox e selecionar a instrução customize toolbox. Depois disso bastará fazer uso do componente, algo como :
DENNES TORRES |
|||||||||
|
Quer
saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e Prepare-se para o Mercado! Veja o que a Búfalo tem para você. |
© Búfalo Informática,
Treinamento e Consultoria -
Rua Álvaro Alvim, 37 Sala 920 - Cinelândia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (11) 3170-3056 e-Mail: contato@bufaloinfo.com.br