📄 databoundstate.vb
字号:
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Collections
Namespace myControls
<ParseChildren(true)> _
Public Class DataBoundState
Inherits Control
Private _dataSource As IEnumerable
Private _itemTemplate As ITemplate
Public Property DataSource As IEnumerable
Get
Return _dataSource
End Get
Set
_dataSource = Value
End Set
End Property
Protected Overrides Sub OnDataBinding( e As EventArgs )
Dim objDataEnum As IEnumerator
Dim objItem As DataBoundStateItem
Dim intCounter As Integer
If Not DataSource Is Nothing
Controls.Clear()
ClearChildViewState()
objDataEnum = DataSource.GetEnumerator()
While ( objDataEnum.MoveNext() )
objItem = New DataBoundStateItem( objDataEnum.Current )
ItemTemplate.InstantiateIn( objItem )
Controls.Add( objItem )
intCounter += 1
End While
ViewState( "NumItems" ) = intCounter
ChildControlsCreated = True
End If
End Sub
Protected Overrides Sub CreateChildControls()
Dim objNumItems As Object
Dim intItemCount As Integer
Dim intCounter As Integer
Dim objItem As DataBoundStateItem
objNumItems = ViewState( "NumItems" )
If Not objNumItems = Nothing Then
Controls.Clear()
intItemCount = CInt( objNumItems)
For intCounter = 0 To intItemCount - 1
objItem = New DataBoundStateItem( Nothing )
ItemTemplate.InstantiateIn( objItem )
Controls.Add( objItem )
Next
End If
End Sub
<TemplateContainer(GetType(DataBoundStateItem))> _
Public Property ItemTemplate As ITemplate
Get
Return _itemTemplate
End Get
Set
_itemTemplate = value
End Set
End Property
End Class
Public Class DataBoundStateItem
Inherits Control
Implements INamingContainer
Private _DataItem As Object
Public Sub New( DataItem As Object )
MyBase.New()
_DataItem = DataItem
End Sub
Public ReadOnly Property DataItem As Object
Get
Return _DataItem
End Get
End Property
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -