Bindable user control (VB) : WebControl « User Control and Master Page « ASP.Net






Bindable user control (VB)

<%@ Page Language="VB" %>
<%@ Register TagPrefix="Control" Namespace="Control" Assembly="Control" %>
<script language="vb" runat="server">
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
  listControl.DataSource = New String() {"Test 1", "Test 2", "Test 3"}
  listControl.DataBind()
End Sub
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
  <head>
    <title>Creating a Databound Control</title>
  </head>
  <body>
    <Control:CustomBulletedList id="listControl" runat="server" />
  </body>
</html>

File: Control.vb

Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.Collections
Imports System.Text

Namespace Control
    Public Class CustomBulletedList
        Inherits System.Web.UI.WebControls.WebControl

        Private _html As New StringBuilder()
        Private _dataSource As IEnumerable

        Public Property DataSource() As IEnumerable
            Get
                Return _dataSource
            End Get
            Set(ByVal value As IEnumerable)
                _dataSource = value
            End Set
        End Property

        Private Sub CreateBulletedList()
            Dim dataSource As IEnumerable = Nothing

            Try
                dataSource = Me._dataSource
            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


        Public Overrides Sub DataBind()
            MyBase.OnDataBinding(EventArgs.Empty)

            CreateBulletedList()
        End Sub


        Protected Overrides Sub Render(ByVal output As HtmlTextWriter)
            output.Write(_html)
        End Sub
    End Class
End Namespace

 








Related examples in the same category

1.SimpleControl extendsing System.Web.UI.WebControls.WebControl
2.SimpleControl extendsing System.Web.UI.WebControls.WebControl (C#)
3.User control based on System.Web.UI.WebControls.Label (C#)
4.User control based on System.Web.UI.WebControls.Label (VB)
5.Bindable user control (C#)