WebForm Repeater: 重复器

来源:互联网 发布:淘宝电器节 编辑:程序博客网 时间:2024/06/04 01:36

Repeater控件,可以用来一次显示一组数据项。比如,可以用它们显示一个数据表中的所有行。      
       Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式。

 Repeater支持以下5种模板      

● ItemTemplate : 对每一个数据项进行格式设置 【Formats each item from the data source.】      
● AlternatingItemTemplate : 对交替数据项进行格式设置      
● SeparatorTemplate : 对分隔符进行格式设置      
● HeaderTemplate : 对页眉进行格式设置 ,在加载开始执行一遍    
● FooterTemplate : 对页脚进行格式设置,在加载最后执行一遍     
以上,英文中使用了Formats item from datasource这样的话,就说明Repeater控件主要是用来对数据进行Format的,控制数据怎么样排列,怎么样显示。      
Repeater必须使用的是Itemtemplate,其它的类型模板按需添加。

例:

复制代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="main.aspx.cs" Inherits="main" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style>        * {            margin: 0px;            padding: 0px;        }        .tb1 {            width: 100%;        }        .trh {            background-color: blue;            color: white;            text-align: center;            height: 50px;        }        .trb {            text-align: center;            height: 30px;        }            .trb:hover {                background-color: #808080;            }        .trb1 {            text-align: center;            height: 30px;            background-color: #ffd800;        }            .trb1:hover {                background-color: #808080;            }    </style></head><body>    <form id="form1" runat="server">        <asp:Repeater ID="Repeater1" runat="server">            <HeaderTemplate>                <table class="tb1">                    <tr class="trh">                                            <td>用户名</td>                        <td>密码</td>                        <td>昵称</td>                        <td>性别</td>                        <td>生日</td>                        <td>民族</td>                        <td>班级</td>                    </tr>            </HeaderTemplate>            <ItemTemplate>                <tr class="trb">                      <td><%#Eval("UserName") %></td>                    <td><%#Eval("Pass") %></td>                    <td><%#Eval("NickName") %></td>                    <td><img height='30' src="<%#Eval("seximage") %>" /></td>                    <td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>                    <td style="<%#Eval("red")%>"><%#Eval("NationName") %></td>                    <td><%#Eval("ClassName") %></td>                </tr>            </ItemTemplate>            <AlternatingItemTemplate>                <tr class="trb1">                                         <td><%#Eval("UserName") %></td>                    <td><%#Eval("PassWord") %></td>                    <td><%#Eval("NickName") %></td>                    <td>                        <img height='30' src="<%#Eval("seximage") %>" /></td>                    <td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>                    <td style="<%#Eval("red")%>"><%#Eval("NationName") %></td>                    <td><%#Eval("ClassName") %></td>                </tr>            </AlternatingItemTemplate>            <FooterTemplate></table></FooterTemplate>        </asp:Repeater>    </form></body></html>
复制代码
复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class main : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        Repeater1.DataSource = new UsersData().select();        Repeater1.DataBind();    }}
复制代码
复制代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;/// <summary>/// Nation 的摘要说明/// </summary>public class Nation{    public Nation()    {        //        // TODO: 在此处添加构造函数逻辑        //    }    public string Code { get; set; }    public string Name { get; set; }}
复制代码
复制代码
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Web;/// <summary>/// NationData 的摘要说明/// </summary>public class NationData{    SqlConnection conn = null;    SqlCommand cmd = null;    public NationData()    {        conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");        cmd = conn.CreateCommand();    }    public List<Nation> Select()    {        List<Nation> list = new List<Nation>();        cmd.CommandText = "select *from Nation";              conn.Open();        SqlDataReader dr = cmd.ExecuteReader();        if (dr.HasRows)        {            while (dr.Read())            {                Nation n = new Nation();                n.Code = dr[0].ToString();                n.Name = dr[1].ToString();                list.Add(n);            }        }        conn.Close();        return list;    }    public List<Nation> select()    {        List<Nation> list = new List<Nation>();        cmd.CommandText = "select *from Class";        conn.Open();        SqlDataReader dr = cmd.ExecuteReader();        if (dr.HasRows)        {            while (dr.Read())            {                Nation n = new Nation();                n.Code = dr[0].ToString();                n.Name = dr[1].ToString();                list.Add(n);            }        }        conn.Close();        return list;    }}
复制代码
复制代码
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Web;/// <summary>/// Users 的摘要说明/// </summary>public class Users{     SqlConnection conn = null;        SqlCommand cmd = null;        public Users()        {            conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");            cmd = conn.CreateCommand();        }    private string _UserName;    /// <summary>    /// 账号    /// </summary>    public string UserName    {        get { return _UserName; }        set { _UserName = value; }    }    private string _Password;    /// <summary>    /// 密码    /// </summary>    public string Password    {        get { return _Password; }        set { _Password = value; }    }    public string Pass    {        get        {            string p = "";            if (Password == "123456")                p = "******";                return p;        }    }    public string Nickname { get; set;}    public bool Sex { get; set; }    public string seximage    {        get        {            string src = "";            if (Sex)                src = "showsm.png";            else                src = "showsw.png";                             return src;        }    }    public DateTime Birthday{get;set;}    public string Nation { get; set; }    public string red    {        get        {            string yellow = "";            if (NationName == "满族")                yellow = "background-color:red;";            return yellow;        }    }    public string Class { get; set;}    public string ClassName    {        get        {            string end = "<无班级>";            cmd.CommandText = "select *from Class where ClassCode = @a";            cmd.Parameters.Clear();            cmd.Parameters.AddWithValue("@a", Class);            conn.Open();            SqlDataReader dr = cmd.ExecuteReader();            if (dr.HasRows)            {                dr.Read();                end = dr["ClassName"].ToString();            }            conn.Close();            return end;        }    }    public string NationName    {        get        {            string end = "<未填>";            cmd.CommandText = "select *from Nation where NationCode = @a";            cmd.Parameters.Clear();            cmd.Parameters.AddWithValue("@a", Nation);            conn.Open();            SqlDataReader dr = cmd.ExecuteReader();            if (dr.HasRows)            {                dr.Read();                end = dr["NationName"].ToString();            }            conn.Close();            return end;        }    }}
复制代码
复制代码
using System;using System.Collections.Generic;using System.Data.SqlClient;using System.Linq;using System.Web;/// <summary>/// UsersData 的摘要说明/// </summary>public class UsersData{    SqlConnection conn = null;    SqlCommand cmd = null;    public UsersData()    {        conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");        cmd = conn.CreateCommand();    }    /// <summary>    /// 用户验证    /// </summary>    /// <param name="uname">用户名验证</param>    /// <param name="pwd">密码验证</param>    /// <returns></returns>    public bool Select(string uname, string pwd)    {        bool yanzheng = false;        cmd.CommandText = "select * from Users where UserName=@a and PassWord=@b";        cmd.Parameters.Clear();        cmd.Parameters.Add("@a", uname);        cmd.Parameters.Add("@b", pwd);        conn.Open();        SqlDataReader dr = cmd.ExecuteReader();        if (dr.HasRows)        {            yanzheng = true;        }        conn.Close();        return yanzheng;    }    /// <summary>    /// 添加    /// </summary>    /// <param name="u"></param>    /// <returns></returns>    public bool insert(Users u)    {        bool ok = false;        cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f,@g)";        cmd.Parameters.Clear();        cmd.Parameters.AddWithValue("@a", u.UserName);        cmd.Parameters.AddWithValue("@b", u.Password);        cmd.Parameters.AddWithValue("@c", u.Nickname);        cmd.Parameters.AddWithValue("@d", u.Sex);        cmd.Parameters.AddWithValue("@e", u.Birthday);        cmd.Parameters.AddWithValue("@f", u.Nation);        cmd.Parameters.AddWithValue("@g", u.Class);        conn.Open();        try        {            cmd.ExecuteNonQuery();            ok = true;        }        catch        { }        conn.Close();        return ok;    }    /// <summary>    /// 查询是否有此用户    /// </summary>    /// <param name="username"></param>    /// <returns></returns>    public bool bselect(string username)    {        bool has = false;        cmd.CommandText = "select *from Users where UserName = @a";        cmd.Parameters.Clear();        cmd.Parameters.Add("@a", username);        conn.Open();        SqlDataReader dr = cmd.ExecuteReader();        if (dr.HasRows)            has = true;        conn.Close();        return has;    }    /// <summary>    /// 查询所有信息    /// </summary>    /// <returns></returns>    public List<Users> select()    {        List<Users> flist = new List<Users>();        cmd.CommandText = "select *from users";        conn.Open();        SqlDataReader dr = cmd.ExecuteReader();        if (dr.HasRows)        {            while (dr.Read())            {                Users u = new Users();                u.UserName = dr["UserName"].ToString();                u.Password = dr["PassWord"].ToString();                u.Nickname = dr["NickName"].ToString();                u.Sex = Convert.ToBoolean(dr["Sex"]);                u.Birthday = Convert.ToDateTime(dr["Birthday"]);                u.Nation = dr["Nation"].ToString();                u.Class = dr["Class"].ToString();                flist.Add(u);            }        }        conn.Close();        return flist;    }}
复制代码

光棒效果

      意思是,当鼠标放上的时候,改变其属性,比如:背景色,边框颜色,边框样式等

      方法:js代码实现,用到两个事件,分别是:onmouseover(鼠标放上)和onmouseout(鼠标离开)

1、不论是正常显示的还是预警显示的,当鼠标放上时,背景色变为黄色;鼠标离开,回复原来的颜色。

复制代码
</style>    <script >        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></head><body>
复制代码

2、除预警显示红色不变外,当鼠标放上时,背景色变为黄色;鼠标离开,回复原来的颜色。

复制代码
</style>    <script >        window.onload=function(){            var items = document.getElementsByClassName("tr_Item");                        for (var i = 0; i < items.length; i++) {                if (items[i].style.backgroundColor != Red) {                    items[i].onmouseover = function () {                        this.style.backgroundColor = "yellow";                    }                    items[i].onmouseout = function () {                        this.style.backgroundColor = oldColor;                    }                }            }        }    </script>
复制代码

Repeater控件的事件处理

      Repeater控件有以下事件:      
              ● DataBinding : Repeater控件绑定到数据源时触发      
              ● ItemCommand : Repeater控件中的子控件触发事件时触发      
              ● ItemCreated : 创建Repeater每个项目时触发  
              ● ItemDataBound : Repeater控件的每个项目绑定数据时触发  

 

原创粉丝点击