repeater web 控件最主要的用途,是可以将数据依照我们所制定的格式逐一显示出来。只要将想要显示的格式先定义好,repeater web 就会依照我们所定义的格式来显示;这个预先定义好的格式我们称为「样版」(template)。使用样版可以让我们的资料可以更容易、更美观的呈现给使用者;支持样版的web 控件有repeater、datalist 以及datagrid。接下来我们先来了解repeater web 控件的使用语法:
<asp:repeater
id="被程序代码所控制的名称"
runat="server"
datasource='<%# 数据系结叙述%>'
>
<template name="样版名称">
以html 所定义的样版
</template >
其它样版定义...
</asp:repeater>
repeater web 控件所支持的样版如下表所示:

其中item 样版必须要定义才能顺利显示资料。下列范例利用repeater web 控件显示使用者姓名及电子邮件信箱:
<%@import namespace=system.data.ado%>
<%@import namespace=system.data%>
<!--#include file="gettable.inc"-->
<html>
<asp:repeater id="rpa" runat="server">
<template name="itemtemplate">
<asp:image id="i1" imageurl="ico1.gif" runat="server"/>
姓名:<%#container.dataitem("username")%><br>
<asp:image id="i2" imageurl="ico2.gif" runat="server"/>
电邮:<%#container.dataitem("useremail")%><br>
</template>
</asp:repeater>
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
dim dtdatatable as datatable=gettable("ch05\myweb.mdb", "members")
rpa.datasource=dtdatatable.defaultview
page.databind()
end sub
</script>
</html>

上述范例中定义了一个itemtemplate 样版,在这个样版中的数据系结叙述使用了<%#container.dataitem("username")%> 这个资料系结叙述,其中container 英文的意思是容器,这里是表示样版放置在哪个对象中;我们在repeater web 控件中使用这个样版,所以这个样版的容器就是repeater web 控件。当程序在执行时,使用container 关键词会传回repeaterweb 控件的参考,这时候就可以利用repeater web 控件的dataitem 属性取得目前要显示的记录字段。下列范例展现了所有的样版:
<%@import namespace=system.data.ado%>
<%@import namespace=system.data%>
<!--#include file="gettable.inc"-->
<html>
<asp:repeater id="rpa" runat="server">
<template name="headertemplate">
<asp:image imageurl="ico3.gif" runat="server"/> <br>
</template>
<template name="itemtemplate">
<asp:image imageurl="ico1.gif" runat="server"/>
姓名: <%#container.dataitem("username")%><br>
<asp:image imageurl="ico2.gif" runat="server"/>
电邮: <%#container.dataitem("useremail")%><br>
</template>
<template name="alternatingitemtemplate">
<asp:image imageurl="ico1.gif" runat="server"/>
姓名: <%#container.dataitem("username")%>
<asp:image imageurl="ico2.gif" runat="server"/>
电邮: <%#container.dataitem("useremail")%><br>
</template>
<template name="separatortemplate">
<asp:image imageurl="ico5.gif" runat="server"/><br>
</template>
<template name="footertemplate">
<asp:image imageurl="ico4.gif" runat="server"/><br>
</template>
</asp:repeater>
总共有<asp:label id="label1" runat="server"/> 笔记录
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
dim dtdatatable as datatable=gettable("ch05\myweb.mdb", "members")
rpa.datasource=dtdatatable.defaultview
page.databind()
label1.text=rpa.items.count
end sub
</script>
</html>
