Repeater 的使用

Posted Dream&er

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Repeater 的使用相关的知识,希望对你有一定的参考价值。

<HeaderTemplate></HeaderTemplate>  头模板——在加载开始执行一遍

<FooterTemplate></FooterTemplate>  脚模板——有多少条数据,执行多少遍

<ItemTemplate></ItemTemplate>  项模板——在加载最后执行一遍

<AlternatingItemTemplate></AlternatingItemTemplate>  交替展示模板

 

例子:

以China表为例数据展示:

<body>
    <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table style="background-color: navy; text-align: center;">
                    <tr style="color: white; padding: 10px;">
                        <td>区域编号</td>
                        <td>区域名称</td>
                        <td>区域父级编号</td>
                    </tr>
</HeaderTemplate>
<ItemTemplate> 
 <tr style="background-color: #e0e0e0;">
                    <td><%#Eval("AreaCode") %></td>
                    <td><%#Eval("AreaName") %></td>
                    <td><%#Eval("ParentAreaCode") %></td>
                </tr>
</ItemTemplate>
<FooterTemplate>
                </table>
            </FooterTemplate>
 </asp:Repeater>
    </form>
</body>

.cs代码

//绑定数据
if (!IsPostBack)
        {
            Repeater1.DataSource = new ChinaStatesData().Select("0001");
            Repeater1.DataBind();
        
        }

China实体类

public class China
{
    public China()
    {
        
    }
    private string code;

    public string Code
    {
        get { return code; }
        set { code = value; }
    }
    private string name;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    private string prentcode;

    public string Prentcode
    {
        get { return prentcode; }
        set { prentcode = value; }
    }
}

 

China数据操作类

 

public class ChinaData
{
    SqlConnection conn = null;
    SqlCommand cmd = null;
    public ChinaData()
    {
        conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }
    public List<China> Select(string pcode)
    {
        cmd.CommandText = "select * from ChinaStates where [email protected]";
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@pcode", pcode);

        conn.Open();

        SqlDataReader dr = cmd.ExecuteReader();

        List<China> list = new List<China>();

        if (dr.HasRows)
        {
            while (dr.Read())
            {
                China data = new China();
                data.Code = dr[0].ToString();
                data.Name = dr[1].ToString();
                data.Prentcode = dr[2].ToString();

                list.Add(data);
            }
        }

        conn.Close();

        return list;
    }
}

------------------------------------------------------------------------------

以Users表作数据展示并作库存预警光棒效果:

<body>
    <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>用户名</td>
                        <td>密码</td>
                        <td>昵称</td>
                        <td>性别</td>
                        <td>生日</td>
                        <td>民族</td>
                   </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                <td><%#Eval("UserName") %></td>
                <td><%#Eval("Password") %></td>
                <td><%#Eval("NickName") %></td>
                <td><%#Eval("SexName") %></td>
                <td><%#Eval("birthdayn" )%></td>
                <td><%#Eval("NationName") %></td>
                    </tr>
            </ItemTemplate>
            <FooterTemplate></table>

            </FooterTemplate>
        </asp:Repeater>
    </form>
</body>

Users实体类:

public Users()
    {
        
    }
    private string _UserName;

    public string UserName
    {
        get { return _UserName; }
        set { _UserName = value; }
    }
    private string _Password;

    public string Password
    {
        get { return _Password; }
        set { _Password = value; }
    }
    private string _NickName;

    public string NickName
    {
        get { return _NickName; }
        set { _NickName = value; }
    }
    private bool _Sex;

    public bool Sex
    {
        get { return _Sex; }
        set { _Sex = value; }
    }
    private DateTime _Birthday;

    public DateTime Birthday
    {
        get { return _Birthday; }
        set { _Birthday = value; }
    }

   
    private string _Nation;

    public string Nation
    {
        get { return _Nation; }
        set { _Nation = value; }
    }
    public string SexName
{
    get {
        return this._Sex ? "" : "";
    }
    }
    public string NationName
    {
        get
        {
            NationDA da = new NationDA();
            _Nation = da.NationName(this.Nation);
            return _Nation;
        }
    }
    public string birthdayn
    {
        get
        {
            return this.Birthday.ToString("yyyy‘年‘M‘月‘d‘日‘");
        }
    }

UserDA数据操作类:

public class UserDA
{
    SqlConnection conn = null;
    SqlCommand cmd = null;
    public UserDA()
    {
        conn = new SqlConnection("server=.;database=Data0617;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }
    public List<Users> select()
    {
        List<Users> list = new List<Users>();
        cmd.CommandText = "select * from Users";
        conn.Open();

        SqlDataReader dr = cmd.ExecuteReader();

        if (dr.HasRows)
        {
            while (dr.Read())
            {
                Users data = new Users();
                data.UserName = dr[0].ToString();
                data.Password = dr[1].ToString();
                data.NickName = dr[2].ToString();
                data.Sex =Convert.ToBoolean( dr[3]) ;
                data.Birthday = Convert.ToDateTime(dr[4]);
                data.Nation = dr[5].ToString();
                list.Add(data);
            }
        }
        conn.Close();

        return list;
    }

}

Nation实体类:

public class Nation
{
    public Nation()
    {
        
    }
    private string _NationCode;

    public string NationCode
    {
        get { return _NationCode; }
        set { _NationCode = value; }
    }


    private string _NationName;

    public string NationName
    {
        get { return _NationName; }
        set { _NationName = value; }
    }
}

 

NationDA数据操作类:

public class NationDA
{
    SqlConnection conn = null;
    SqlCommand cmd = null;
    public NationDA()
    {
        conn = new SqlConnection("server=.;database=Data0617;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }
    public string NationName(string ncode)
    {
        string name = "";
        cmd.CommandText = "select NationName from Nation where [email protected]";
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@ncode",ncode);
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            Nation a = new Nation();
            dr.Read();
            name = dr[0].ToString();
            

        }

        conn.Close();
        return name;
    }
}

数据绑定

if (!IsPostBack)
        {
            Repeater1.DataSource = new UserDA().select();
            Repeater1.DataBind();

        }

 -------------------------------------------------------------------------------

库存预警:

<ItemTemplate>
                <tr class="tr_Item" style="<%#Eval("Red")%>">//满足条件改变样式
                    <td><%#Eval("UserName") %></td>
                    <td><%#Eval("PassWord") %></td>
                    <td><%#Eval("NickName") %></td>
                    <td><%#Eval("SexStr") %></td>
                    <td><%#Eval("BirthdayStr") %></td>
                    <td><%#Eval("Age") %></td>
                    <td><%#Eval("NationName") %></td>
                </tr>
            </ItemTemplate>

Users实体类,通过扩展属性

 public string Age
    {
        get { return (DateTime.Now.Year - this._Birthday.Year).ToString(); }
    }

    public string Red
    {
        get
        {
            string end = "";
            if (Convert.ToInt32(Age) >= 16)
            {
                end = "background-color:red;";
            }
            return end;
        }
    }

 

 

光棒效果——鼠标移入移出颜色改变

<style type="text/css">
        #tb1 {
            width: 100%;
            background-color: navy;
            text-align: center;
        }

        #tr_head {
            color: white;
        }

        .tr_Item {
            background-color: white;
        }

        .tr_Item2 {
            background-color: #e0e0e0;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            var items = document.getElementsByClassName("tr_Item");
            var oldColor = "";//用来记录原来的颜色
            for (var i = 0; i < items.length; i++) {
                items[i].onmouseover = function () {
                    oldColor = this.style.backgroundColor;
                    this.style.backgroundColor = "yellow";
                };
                items[i].onmouseout = function () {
                    this.style.backgroundColor = oldColor;
                };

            }


        };
    </script>

 

以上是关于Repeater 的使用的主要内容,如果未能解决你的问题,请参考以下文章

webform简单控件和Repeater的使用

c#中关于repeater控件的说法

asp.net 中repeater控件和linkbutton 的使用方法有哪些?

2017-5-18 Repeater 重复器的使用

WebForm以及WebForm中Repeater控件简单控件使用

实现Repeater控件的记录单选