在ASP.NET中最常用的数据绑定方法就是Repeater了,不仅因为使用简单,而且Repeater轻量级,没有VIEWSTATE,深受开发者亲睐。本片博客就来介绍Repeater的使用方法和注意事项。
一、准备数据
在数据库中创建一张表,具体的sql脚本如下:
createdatabaseTest
go
createtablestudents
(
IDintidentity(1,1)primarykey,
[Name]nvarchar(20)notnull,
Sexintnotnull-- 1:male 0:female
)
insertintostudents(Name,sex)values('Frank',1);
insertintostudents(Name,sex)values('Caroline',0);
insertintostudents(Name,sex)values('Tom',1);
insertintostudents(Name,sex)values('Jack',1);
创建后的效果如下图所示:
二、在项目中测试
在Visual Studio中新建一个WebApplication,进行测试。
在后台.cs文件中的代码如下:
protectedvoid Page_Load(object sender, EventArgs e)
{
string connStr = @"server=.\SQLEXPRESS;database=Test;uid=sa;pwd=123456";
SqlConnection conn = newSqlConnection(connStr);
try
{
conn.Open();
SqlCommand cmd = newSqlCommand("select * from students", conn);
SqlDataReader sdr = cmd.ExecuteReader();
DataTable dt = newDataTable();
dt.Load(sdr);
rep.DataSource = dt;
rep.DataBind();
}
catch (Exception ex)
{
throw ex;
}
}
前台页面放一个Repeater控件,添加一个<ItemTemplate>模板,如下:
<asp:RepeaterID="rep"runat="server"onitemdatabound="rep_ItemDataBound">
<ItemTemplate>
<%#Eval("ID") %>、<%#Eval("Name") %>、<%#Eval("Sex") %>
<br/>
</ItemTemplate>
</asp:Repeater>
用Eval(string expression)表达式绑定字段,进行展示。运行结果如图:
我们需要把表示性别的1和0转换成有意思的文字让人看。所以需要在Repeater绑定之前做一些事情。
具体代码如下:
// 绑定之前显示男女
protectedvoid rep_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
Label lbl = (Label)e.Item.FindControl("lblSex");
if (drv["Sex"].ToString() == "1")
{
lbl.Text = "男";
}
else
{
lbl.Text = "女";
}
}
页面只需稍作更改即可:
<asp:RepeaterID="rep"runat="server"onitemdatabound="rep_ItemDataBound">
<ItemTemplate>
<%#Eval("ID") %>、<%#Eval("Name") %>、<asp:LabelID="lblSex"runat="server"Text=""></asp:Label>
<br/>
</ItemTemplate>
</asp:Repeater>
最后运行效果如图所示: