multipletemplates.vb

来自「asp.net技术内幕的书配源码」· VB 代码 · 共 80 行

VB
80
字号
Imports System
Imports System.Web
Imports System.Web.UI

Namespace myControls


Public Class MultipleTemplatesTemplateItem
Inherits Control
Implements INamingContainer

    Private _dataItem As Integer

    Public Sub New( DataItem As Integer )
      _dataItem = DataItem
    End Sub

    Public Property DataItem As Integer
    Get
      Return _dataItem
    End Get
    Set
      _dataItem = Value
    End Set
  End Property
End Class


<ParseChildren(true)> Public Class MultipleTemplates
Inherits Control
Implements INamingContainer

  Private _itemTemplate As ITemplate
  Private _alternatingItemTemplate As ITemplate

  <TemplateContainer(GetType(MultipleTemplatesTemplateItem))> _
  Public Property ItemTemplate As ITemplate
    Get
      Return _itemTemplate
    End Get
    Set
      _itemTemplate = Value
    End Set
  End Property

  <TemplateContainer(GetType(MultipleTemplatesTemplateItem))> _
  Public Property AlternatingItemTemplate As ITemplate
    Get
      Return _alternatingItemTemplate
    End Get
    Set
      _alternatingItemTemplate = Value
    End Set
  End Property

  Public Overrides Sub DataBind()
    EnsureChildControls()
    MyBase.DataBind()
  End Sub

  Protected Overrides Sub CreateChildControls()
    Dim intCounter As Integer
    Dim objTemplateItem As MultipleTemplatesTemplateItem

    Controls.Clear()
    For intCounter = 1 To 10
      objTemplateItem = New MultipleTemplatesTemplateItem( intCounter )
      If Decimal.Remainder( intCounter, 2 ) = 0 Then
        ItemTemplate.InstantiateIn( objTemplateItem )
      Else
        AlternatingItemTemplate.InstantiateIn( objTemplateItem )
    End If
    Controls.Add( objTemplateItem )
  Next
End Sub

End Class

End Namespace

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?