Repeater控件基本用法
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.Bind();
}
}
private void Bind()
{
DataTable dt = this.CreateDataSource();
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
this.Repeater2.DataSource = dt;
this.Repeater2.DataBind();
}
private DataTable CreateDataSource()
{
DataTable dt = new DataTable("info");
dt.Columns.Add("number", typeof(int));
dt.Columns.Add("square", typeof(int));
dt.Columns.Add("cube", typeof(int));
for (int i = 1; i <= 50; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = i * i;
dr[2] = i * i * i;
dt.Rows.Add(dr);
}
return dt;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table>
<tr>
<td style="width: 200px; vertical-align: top;">
<table>
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<tr>
<td>
数字
</td>
<td>
平方
</td>
<td>
立方
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "number")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "square")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "cube")%>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "number")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "square")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "cube")%>
</td>
</tr>
</AlternatingItemTemplate>
</asp:Repeater>
</table>
</td>
<td style="width: 600px; vertical-align: top;">
<table>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"number")%><sup>2</sup>=<%# DataBinder.Eval(Container.DataItem, "square")%>
;<%# DataBinder.Eval(Container.DataItem,"number")%><sup>3</sup>=<%# DataBinder.Eval(Container.DataItem, "cube")%>
</ItemTemplate>
<AlternatingItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"number")%><sup>2</sup>=<%# DataBinder.Eval(Container.DataItem, "square")%>
;<%# DataBinder.Eval(Container.DataItem,"number")%><sup>3</sup>=<%# DataBinder.Eval(Container.DataItem, "cube")%>
</AlternatingItemTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
</asp:Repeater>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>说明
(1) HeaderTemplate为表头模板,ItemTemplate为可重复的项,AlternatingItemTemplate为可重复交替项,FooterTemplate为注脚部部分,SeparatorTemplate 在各行之间呈现的元素,通常是分行符(<br> 标记)、水平线(<hr> 标记)等。注意 SeparatorTemplate 项不能是数据绑定的;
(2) ItemTemplate 为数据源中的每一行都呈现一次的元素。若要显示 ItemTemplate 中的数据,要声明Web服务器控件,并设置其数据绑定表达式以使其计算为 Repeater控件(即容器控件Container)的 DataSource 中的字段;
(3) 在Page_load事件里,把数据绑定到Repeater控件。本例中创建一个有三列的表,并向表中添加记录,作为Repeater控件的数据源;
(4) DataBinder类提供对应用程序快速开发 (RAD) 设计器的支持以生成和分析数据绑定表达式语法;
(5) DataBinder.Eval方法有三个重载函数,在运行时使用反射来分析和计算对象的数据绑定表达式:
Eval(Object container,string expression)
Eval(Object container,stringexpression,string format)如:使用Eval方法绑定到 Price 字段。<%# DataBinder.Eval (Container.DataItem,"Price") %>
<%# DataBinder.Eval(Container.DataItem,"Price", "{0:c}") %>(6) Container是数据表在内存中的映射。

本文介绍了ASP.NET中的Repeater控件,包括HeaderTemplate、ItemTemplate、AlternatingItemTemplate和FooterTemplate等基本用法。在Page_load事件中绑定数据源,通过DataBinder.Eval方法实现数据绑定,用于创建动态表格并展示数据。
4209

被折叠的 条评论
为什么被折叠?



