简介:

Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表。

Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局。当该页运行时,

Repeater 控件依次通过数据源中的记录为每个记录呈现一个项。

Repeater控件不具备内置的呈现功能,所以我们得用一些模板来实现他的数据呈现

  下表描述了 Repeater 控件支持的模板。 
  模板属性                                                说明

  ItemTemplate                              包含要为数据源中每个数据项都要呈现一次的 HTML 元素和控件。有多少条数据就执行多少遍

  AlternatingItemTemplate                  通常,可以使用此模板为交替项创建不同的外观,例如指定一种与在  ItemTemplate 中指定的颜色不同的背景色。一行一个颜色

  HeaderTemplate                         在开始加载执行一遍

  FooterTemplate                         在最后加载执行一遍

 
  如果Repeater控件没有指定数据源,它将不显示,如果指定的数据源中没有数据,那么头,脚模板将继续显示。

  这个控件主要点:

  1,对Repeater几个模板的理解

  2,简单实用 Repeater控件实现数据读取以及呈现。 
  3,实现该控件的嵌套使用 
  4,实现数据分页

▲:表格展示数据

Users实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// Users 的摘要说明
/// </summary>
public class Users
{
public Users()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
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; }
}
private string _NickName;
/// <summary>
/// 昵称
/// </summary>
public string NickName
{
get { return _NickName; }
set { _NickName = value; }
}
private bool _Sex;
/// <summary>
/// 性别
/// </summary>
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
}
private DateTime _Birthday;
/// <summary>
/// 生日
/// </summary>
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
private string _Nation;
/// <summary>
/// 民族
/// </summary>
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
} //定义性别为string类型的,显示时直接显示男或女,需扩展属性
public string Ssex //前台Eval时 输入的是 Ssex,
{
get//只读取显示出就可
{
return _Sex ? "男" : "女";
}
} //定义生日为string类型的,显示时直接显示....年..月..日
public string Birthday2 //前台Eval时 输入的是 Birthday2,
{
get//同上
{
return _Birthday.ToString("yyyy年MM月dd日");
}
} //在显示表时 显示出年龄 就要在前台加 Age列,现日期 减 生日
public string Age
{
get
{
return (DateTime.Now.Year - this.Birthday.Year).ToString();
}
} public string red
{
get
{
string end = "";
if (Convert.ToInt32( Age) >= )
{
end = "background-color:red;";//不能写错
}
return end; //大于等于16的数据 背景色变红
}
} }
 public string NationName
{
get { return new NationDA().Select(this._Nation).NationName; } } public List<Users> Sel {
  UserDA里查询所有数据
cmd.CommandText = "select * from Users ";
cmd.Parameters.Clear(); conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
List<Users> list = new List<Users>();
if (dr.HasRows)
{
while (dr.Read())
{ Users da = new Users();
da.UserName=dr[].ToString();
da.PassWord=dr[].ToString();
da.NickName=dr[].ToString();
da.Sex=Convert.ToBoolean( dr[]);
da.Birthday=Convert.ToDateTime( dr[]);
da.Nation= dr[].ToString();
list.Add(da);
}
} conn.Close();
return list;
}

NationDA里显示民族名称的方法:

 public string nationnm(string code)
{
cmd.CommandText = "select NationName from Nation where NationCode=@nationcode";
cmd.Parameters.Clear();
cmd.Parameters.Add("@nationcode", code); conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
return dr[].ToString();
}
else
{
return "汉族";
}
conn.Close();
}

后台代码。cs:

 protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = new UsersDA().Select();
Repeater1.DataBind(); }
}

前台代码 aspx:

<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title> <style type="text/css"> 写的样式
#tb1 {
width:%;
background-color:#0094ff;
text-align:center;
}
#tr_head {
color:white;
}
.tr_Item {
background-color:white;
}
.tr_Item {
background-color:#e4dede;
}
</style>
</head>
<body>
<form id="form1" runat="server"> <asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table id="tb1">
<tr id="tr_head">
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>年龄</td>
<td>民族</td>
</tr> </HeaderTemplate> <ItemTemplate>
<tr class="tr_Item" style='<%#Eval("red") %>'>大于16的显示红色
<td><%#Eval("UserName") %></td>
<td><%#Eval("Password") %></td>
<td><%#Eval("NickName") %></td>
<td><%#Eval("Ssex") %></td>
<td><%#Eval("Birthday2") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("Nation") %></td>
</tr> </ItemTemplate>
<AlternatingItemTemplate> 交替显示
<tr class="tr_Item2"style='<%#Eval("red") %>'>
<td><%#Eval("UserName") %></td>
<td><%#Eval("Password") %></td>
<td><%#Eval("NickName") %></td>
<td><%#Eval("Ssex") %></td>
<td><%#Eval("Birthday2") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("Nation") %></td>
</tr>
</AlternatingItemTemplate> <FooterTemplate>
</table>
</FooterTemplate> </asp:Repeater> </form>
</body>
</html>

库存预警:
通过某个属性值判断后,将某条数据的样式进行更改

属性扩展的方式,写一个返回string类型的属性,返回的是CSS样式表样式

属性值不一定非得是展示用

效果图:

JS里的效果:光棒效果;鼠标放上变色,拿走恢复原来的样  <script></script>onmouseout、onmouseout俩事件

库存预警:
通过某个属性值判断后,将某条数据的样式进行更改

属性扩展的方式,写一个返回string类型的属性,返回的是CSS样式表样式

为了让大家知道,属性值不一定非得是展示用

写在head里

 <script type="text/javascript">
window.onload = function () {
var items = document.getElementsByClassName("tr_Item");
for (var i = ; 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 = "white";
};
}
}
};
</script>
 </style>
<script type="text/javascript">
window.onload = function () {
var items = document.getElementsByClassName("tr_Item");
var oldColor = "";
for (var i = ; i < items.length; i++) {
items[i].onmouseout = function () {
oldColor = this.style.backgroundColor;
this.style.backgroundColor = "yellow";
};
items[i].onmouseout = function () {
this.style.backgroundColor = oldColor; 点到红色也变色
}; } };
</script>

Repeater控件 ---表格展示数据的更多相关文章

  1. ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作

    说明:由于Repeater控件是动态绑定,通过Id获取数据只能默认获取第一行: 1.对Repeater中div设置样式 2.通过$(".css").each(function(){ ...

  2. 动态绑数据(Repeater控件HeaderTemplate和ItemTemplate)

    前几天,Insus.NET有写了<动态绑数据(GridView控件Header和ItemTemplate)>http://www.cnblogs.com/insus/p/3303192.h ...

  3. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  4. 动态合并Repeater控件数据列

    前天Insus.NET实现<动态合并GridView数据行DataRow的列>.今天再玩玩Repeater控件,功能也是动态合并某列栏位.Repeater控件跟GridView控件一样集成 ...

  5. Repeater 控件 当数据源没有数据的时候显示 暂无数据 的两种方式

    第一种:现在前台给Repeater控件外面的div加一个runat=”server”  然后在cs后台判断数据源是否为空, 是的话就修改这个前台div的InnerText或者是InnerHtml 即可 ...

  6. SqlServer分页存储过程(多表查询,多条件排序),Repeater控件呈现数据以及分页

        存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出 ...

  7. 获取Repeater控件中的每一项数据

    var items = rptList.Items;//获取Repeater控件的所有项 foreach (RepeaterItem item in items)//遍历每一项内容 {   var t ...

  8. 在Repeater控件的OnItemDataBound获取数据源记录总数

    Insus.NEt曾经有写过一篇<Repeater控件最后一笔记录高亮显示> ,它的实现是先宣告一个页面级的变量,然后在Data_Binding()方法内获取数据源的记录总数. 本篇是的重 ...

  9. WebForm(四)——Repeater控件(重要、好用)

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

随机推荐

  1. noip2013 火柴排序

    涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: ,其中 ai 表示第一列火柴中第 i 个火柴的高度,b ...

  2. 如何做好APP测试?

    测试一个App具体包括哪些方面,以及每个方面有什么关键点呢? 测试人员常被看作bug寻找者,但你曾想过他们实际是如何开展测试的吗? 你是否好奇他们究竟都做些什么,以及他们如何在一个典型的技术项目中体现 ...

  3. 高度平衡的二叉搜索树(AVL树)

    AVL树的基本概念 AVL树是一种高度平衡的(height balanced)二叉搜索树:对每一个结点x,x的左子树与右子树的高度差(平衡因子)至多为1. 有人也许要问:为什么要有AVL树呢?它有什么 ...

  4. linux, configure --prefix=/有什么用

    作用就是指定安装路径不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc.其它的资源文件放在 ...

  5. Android 扫一扫----ZXing 的使用

    1. 首先现在ZXing的lib 2. 在Android Studio集成ZXing. public void scan(View view){ startActivityForResult(new ...

  6. Android 后端 Bmob的使用

    网上发现一个很不错的东西Bmob,推荐给大家使用. Bmob可以开发一个云存储的移动应用软件,给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息. 如果觉得创建服务器程序比较麻烦 ...

  7. Silverlight管理系统源码(用于开发ERP、OA、CRM、HR、进销存、财务等系统之用)

    Silverlight大型管理系统源代码(支持创建ERP.OA.CRM.HR.进销存.财务等系统之用) 可用于开发以下系统 SilverlightERP SilverlightCRM Silverli ...

  8. 黄聪:wkhtmltopdf解决分页问题

    wkhtmltopdf 有个很好的方法,就是在那个div的样式后添加一个:page-break-inside:avoid;就ok了. <!DOCTYPE html PUBLIC "-/ ...

  9. 圆形的Volley.NetworkImageView控件的实现

    github上有个开源项目CircleImageView,可以简单的实现一个圆形的ImageView,就像qq头像那样. NetworkImageView是volley中的一个组件,可以方便的加载网络 ...

  10. [家里蹲大学数学杂志]第056期Tikhonov 泛函的变分

    设 $\scrX$, $\scrY$ 是 Hilbert 空间, $T\in \scrL(\scrX,\scrY)$, $y_0\in\scrY$, $\alpha>0$. 则 Tikhonov ...