Vinculação de dados com WEBCONTROL

Hoje iremos tratar sobre vinculação de dados, ou seja, databound de controles com asp.net...

Vinculação de dados com WEBCONTROL

 

Hoje iremos tratar sobre vinculação de dados, ou seja, databound de controles com asp.net, iremos construir um controle que se vincule a uma fonte de dados, será explicado passo a passo os códigos para que seja fácil o entendimento.

 

Primeiramente criei um novo projeto do tipo Web Control Library dê o nome que quiser e escolha a linguagem Visual Basic.

 

Ficando assim:

 

Imports System

Imports System.Collections.Generic

Imports System.ComponentModel

Imports System.Text

Imports System.Web

Imports System.Web.UI

Imports System.Web.UI.WebControls

Imports System.Collections

 

<DefaultProperty("Text"), ToolboxData("<:WebCustomControl1 runat=server></:WebCustomControl1>")> _

Public Class WebCustomControl1

Inherits WebControl

 

' Primeiramente iremos declarar duas variáveis

 

Private _html As New StringBuilder()

Private _dataSource As IEnumerable

 

'Em seguida criaremos uma propriedade do tipo IEnumerable, esta interface expõe uma coleção de um tipo especificado.

 

Public Property fonteDados() As IEnumerable

Get

Return _fonte

End Get

Set(ByVal value As IEnumerable)

_fonte = value

End Set

End Property  

 

 

'Em seguinda criaremos nossa lista de controles, e renderizamos da maneira que acharmos necessário.

'Neste caso foi criada uma lista html.

Private Sub criaControle()

Dim dataSource As IEnumerable = Nothing

 

Try

dataSource = Me._fonte

Catch

End Try

 

If Not (dataSource Is Nothing) Then

_html.Append("<ul>")

Dim dataObject As Object

For Each dataObject In dataSource

_html.Append("<li>")

_html.Append(dataObject)

_html.Append("</li>")

Next dataObject

_html.Append("</ul>")

End If

End Sub

 

'Agora sobrescrevemos o método DataBind simplesmente chamando nossso método criaControle.

 

Public Overrides Sub DataBind()

MyBase.OnDataBinding(EventArgs.Empty)

 

criaControle();

End Sub

 

'Por fim renderizamos nosso controle.

 

Protected Overrides Sub Render(ByVal output As HtmlTextWriter)

output.Write(_html)

End Sub

 

End Class

 

Dê um build no projeto criado.

 

Crie um novo WebSite, adicione o WebControl criado na toolbox e no evento page_load adicione o seguinte código.

 

ArrayList ar = new ArrayList();

ar.Add("1º Item");

ar.Add("2º Item");

WebCustomControl1_1.fonteDados = ar;

WebCustomControl1_1.DataBind();

 

O resultado será esse:

 

 

 

É isso pessoal até a próxima.

Artigos relacionados