AlternatingItemTemplate用于定义交替项呈现的内容和布局。所谓的交替项方式,就是在Repeater控件和DataList控件中允许奇偶项以不同的内容和布局形式显示数据,其中奇数行由AlternatingItemTemplate模板定义(索引号从1开始),偶数行由ItemTemplate模板定义(引号从0开始)。若仅定义了ItemTemplate模板而未定义AlternatingItemTemplate模板,则所有行全部按ItemTemplate模板指定的数据与布局形式显示。若仅定义了AlternatingItemTemplate模板而未定义ItemTemplate模板,则仅显示AlternatingItemTemplate模板指定的数据与布局形式的奇数行,偶数行不会显示。若这两种项模板都未定义,则什么数据都不会显示,那是没有意义的。
AlternatingItemTemplate模板的HTML标记为:
<AlternatingItemTemplate>
<%--该模板内显示的内容与布局--%>
</AlternatingItemTemplate>
因为AlternatingItemTemplate模板内含数据项,所以Repeater控件使用该模板时,也必须进行数据绑定,绑定方式同ItemTemplate模板。
为了说明AlternatingItemTemplate模板的使用方法和使用的效果,在上例中加进一个AlternatingItemTemplate模板,其页面的HTML视图变为下面的形式。
<form id="Form1" method="post" runat="server">
<% ="品名 产地 单价"%> <%--显示Repeater控件的头部--%>
<asp:repeater id="Repeater1" runat="server">
<AlternatingItemTemplate>
<font face="黑体" color="#ff0000">
<p>
<b><%#DataBinder.Eval(Container.DataItem,"商品名称")%></b>
<b><%#DataBinder.Eval(Container.DataItem,"产地")%></b>
<b><%#DataBinder.Eval(Container.DataItem,"单价")%></b>
</p>
</font>
</AlternatingItemTemplate>
<ItemTemplate>
<font face="宋体" color="#0000ff">
<p>
<%#DataBinder.Eval(Container.DataItem,"商品名称")%>
<%#DataBinder.Eval(Container.DataItem,"产地")%>
<%#DataBinder.Eval(Container.DataItem,"单价")%>
</p>
</font>
</ItemTemplate>
</asp:repeater>
</form>
在< asp:repeater >标签内增加了一个<AlternatingItemTemplate>标签,它是交替项标签。交替项模板所指定的数据项与项模板所指定的数据项相同,它们显示同样的字段数据,不过显示的文本的字体与颜色是不同的。
不需要修改任何后台代码,按Ctrl+F5键运行程序,效果如下图。
AlternatingItemTemplate交替项模板定义的是红色的黑体粗字,而ItemTemplate模板定义的是蓝色的宋体,使得页面有了一些变化。