Repeater控件用法

在ASP.NET中最常用的数据绑定方法就是Repeater了,不仅因为使用简单,而且Repeater轻量级,没有VIEWSTATE,深受开发者亲睐。本片博客就来介绍Repeater的使用方法和注意事项。

一、准备数据

在数据库中创建一张表,具体的sql脚本如下:

 

create database Test

go

create table students

(

    ID int identity(1,1) primary key,

    [Name] nvarchar(20) not null,

    Sex int not null -- 1:male 0:female

)

 

insert into students(Name,sex) values('Frank',1);

insert into students(Name,sex) values('Caroline',0);

insert into students(Name,sex) values('Tom',1);

insert into students(Name,sex) values('Jack',1);

创建后的效果如下图所示:

image

 

二、在项目中测试

在Visual Studio中新建一个WebApplication,进行测试。

image

在后台.cs文件中的代码如下:

protected void Page_Load(object sender, EventArgs e)

{

    string connStr = @"server=.\SQLEXPRESS;database=Test;uid=sa;pwd=123456";

    SqlConnection conn = new SqlConnection(connStr);

    try

    {

        conn.Open();

        SqlCommand cmd = new SqlCommand("select * from students", conn);

        SqlDataReader sdr = cmd.ExecuteReader();

        DataTable dt = new DataTable();

        dt.Load(sdr);

        rep.DataSource = dt;

        rep.DataBind();

    }

    catch (Exception ex)

    {

        throw ex;

    }      

}

 

前台页面放一个Repeater控件,添加一个<ItemTemplate>模板,如下:

<asp:Repeater ID="rep" runat="server" onitemdatabound="rep_ItemDataBound">

    <ItemTemplate>

        <%#Eval("ID") %><%#Eval("Name") %><%#Eval("Sex") %>

        <br />

    </ItemTemplate>

</asp:Repeater>

用Eval(string expression)表达式绑定字段,进行展示。运行结果如图:

image

我们需要把表示性别的1和0转换成有意思的文字让人看。所以需要在Repeater绑定之前做一些事情。

具体代码如下:

 

// 绑定之前显示男女

protected void 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:Repeater ID="rep" runat="server" onitemdatabound="rep_ItemDataBound">

    <ItemTemplate>

        <%#Eval("ID") %><%#Eval("Name") %><asp:Label ID="lblSex" runat="server" Text=""></asp:Label>

        <br />

    </ItemTemplate>

</asp:Repeater>

最后运行效果如图所示:

image

posted on 2012-08-06 21:58  Frank.Fan  阅读(3178)  评论(1编辑  收藏  举报