代码:Imports System
Imports System.Web
Imports System.Web.ui
Imports System.Web.UI.webcontrols
Imports System.Collections.Specialized
Imports System.CollectionsPublic Class RepeaterItem
    Inherits Control
    Implements INamingContainer
    Private itemIndex As Int32
    Private dataItem As Object
    Public Sub New(ByVal Index As Int32, ByVal data As Object)
        Me.itemIndex = Index
        Me.dataItem = data
    End Sub    Public ReadOnly Property text1() As Object
        Get            Return Dataitem
        End Get    End Property
    Public ReadOnly Property text2() As Int32
        Get            Return itemIndex
        End Get    End Property
End Class
Public Class RepeatLabel
    Inherits Control
    Implements INamingContainer
    Private _itemTemplate As ITemplate = Nothing
    Private _dataSource As ICollection = Nothing
    Public Property DataSource() As ICollection
        Get            Return _dataSource
        End Get
        Set(ByVal Value As ICollection)            _dataSource = Value
        End Set
    End Property    <TemplateContainer(GetType(RepeaterItem))> _
Public Property ItemTemplate() As ITemplate
        Get
            Return _itemTemplate
        End Get
        Set(ByVal Value As ITemplate)
            _itemTemplate = Value
        End Set
    End Property
    Private Const Numstring As String = "Num"    Protected Overrides Sub CreateChildControls()
        Dim numobject As Object = ViewState(Numstring)
        If Not (numobject Is Nothing) Then
            Controls.Clear()
            Dim numItems As Int32 = CType(numobject, Int32)
            Dim i As Int32
            For i = 0 To numItems - 1
                Dim item As New RepeaterItem(i, Nothing)
                ItemTemplate.InstantiateIn(item)                Controls.Add(item)
            Next        End If
    End Sub
    Protected Overrides Sub OnDataBinding(ByVal e As EventArgs)
        MyBase.OnDataBinding(e)
        If Not (DataSource Is Nothing) Then
            Controls.Clear()
            ClearChildViewState()
            Dim dataEnum As IEnumerator = DataSource.GetEnumerator
            Dim i As Int32 = 0
            While (dataEnum.MoveNext())
                Dim item As New RepeaterItem(i, dataEnum.Current)                ItemTemplate.InstantiateIn(item)                Controls.Add(item)
                i = i + 1
            End While            ChildControlsCreated = True            ViewState(Numstring) = i        End If    End Sub
    Protected Overrides Sub AddParsedSubObject(ByVal o As Object)
    End SubEnd Class引用:
<%@ Register TagPrefix="cc1" Namespace="WebApplication1" Assembly="WebApplication1" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" Debug="true" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<cc1:RepeatLabel id="RepeatLabel1" runat="server">
<itemtemplate><asp:Label ID=label1 Runat=server text=<%#container.dataitem%>></asp:Label></itemtemplate>

</cc1:RepeatLabel>
</FONT>
</form>
</body>
</HTML>
出错提示:
“dataitem”不是“WebApplication1.RepeatLabel”的成员