大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用repeater作为我们的数据绑定控件了。Repeater控件与DataGrid (以及DataList)控件的主要区别是在于如何处理HTML。ASP.NET建立HTML代码以显示DataGrid控件,但Repeater允许开发人员决定如何显示数据。所以,你可以选择将数据显示在一个HTML表格中或者一个顺序列表中。这主要取决于你的选择,但你必须将正确的HTML插入到 ASP.NET页面中。
   模板与DataList一样,Repeater控件只支持模板。以下的模板可供选择:
  AlternatingItemTemplate: 指定如何显示每一其它选项。
  ItemTemplate: 指定如何显示选项。(AlternatingItemTemplate可以覆盖这一模板。)
   HeaderTemplate: 建立如何显示标题。
  FooterTemplate: 建立如何显示页脚。
  SeparatorTemplate: 指定如何显示不同选项之间的分隔符。
  你可以使用这些模板来显示你希望的数据。唯一具有强制性的模板是ItemTemplate,所有其它的模板都是具有选择性的。
  对于处理一个数据源,Repeater控件具有与DataGrid与DataList相同的属性:
  
  DataMember:获得或者设置与 Repeater 控件绑定的相应DataSource属性的表格。
  
  DataSource:获得或者设置为 Repeater 显示提供数据的数据源。
  
  除此之外,还有一个Items属性,你可以通过这一属性编程访问Repeater数据中单一选项。它返回一个RepeaterItemCollection对象,为一组RepeaterItem对象的集合,代表 Repeater 数据的每一行。
  
  ASP.NET Web数据控件还有其它一个共性:它们都使用DataBind方法来生成用户界面。调用这一方法可以返回并显示数据(假设DataSource和 DataMember属性设置正确)。在查看DataBind方法之前,我们先看看如何在一个Web页面中使用一个Repeater控件。
      使用Repeater控件
  使用Repeater控件的第一步骤是决定我们将要使用的数据源和字段。例如,我们将要使用SQL Server Northwind数据库中的Employees列表。Web页面将显示职工的完整名字,地址,以及电话号码。HTML将使用DIV标记,用 Repeater 模板来分隔内容。下面是 Web 页面的 HTML 内容:

程序代码
<%@ Page language="c#" %>
  <%@ Import Namespace="System.Data" %>
  <%@ Import Namespace="System.Data.SqlClient" %>
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  <html><head>
  <title>Builder.com Repeater Example</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  <meta name="CODE_LANGUAGE" Content="C#">
  <style>
  .alternate {
  FONT-WEIGHT: bold;
  COLOR: black;
  FONT-FAMILY: Verdana, 'Times New Roman';
  BACKGROUND-COLOR: yellow
  }

.row {
  FONT-WEIGHT: bold;
  COLOR: black;
  FONT-FAMILY: Verdana, 'Times New Roman';
  BACKGROUND-COLOR: white
  }
  .footer {
  FONT-WEIGHT: bold;
  COLOR: red;
  FONT-FAMILY: Verdana, 'Times New Roman';
  BACKGROUND-COLOR: gray
  }
  .header {
  FONT-WEIGHT: bold;
  COLOR: yellow;
  FONT-FAMILY: Verdana, 'Times New Roman';
  BACKGROUND-COLOR: gray
  }
  .box {
  BORDER-RIGHT: blue groove;
  BORDER-TOP: blue groove;
  DISPLAY: block;
  VERTICAL-ALIGN: baseline;
  OVERFLOW: auto;
  BORDER-LEFT: blue groove;
  CURSOR: wait;
  BORDER-BOTTOM: blue groove;
  FONT-FAMILY: verdana;
  TEXT-ALIGN: center
  }
  body {
  background: #333;
  }
  </style>
  <script language="C#" runat="server">
  private void Page_Load(object sender, System.EventArgs e) {
  if (!IsPostBack) {
  DataSet dset = new DataSet();
  string conn = "server=(local);Initial Catalog=Northwind;UID=ctester;PWD=password";
  string qry = "Select firstname, lastname, address, city, region, postalcode,
  homephone FROM employees";
  SqlDataAdapter sda = new SqlDataAdapter(qry, conn);
  sda.Fill(dset);
  Repeater1.DataSource = dset.Tables[0].DefaultView;
  Repeater1.DataBind();
  } }
  </script></head>
  <body MS_POSITIONING="GridLayout" bgColor="#00cc99">
  <form id="Form1" method="post" runat="server">
  <div class="box">
  <asp:Repeater id="Repeater1" runat="server">
  <HeaderTemplate>
  <div class="header" id="header">Northwind Employees</div>
  </HeaderTemplate>
  <SeparatorTemplate><hr /></SeparatorTemplate>
  <ItemTemplate><div class="row">
  <%# ((DataRowView)Container.DataItem)["FirstName"] %>
  <%# ((DataRowView)Container.DataItem)["LastName"] %><br>
  <%# ((DataRowView)Container.DataItem)["Address"] %><br>
  <%# ((DataRowView)Container.DataItem)["City"] %>,
  <%# ((DataRowView)Container.DataItem)["Region"] %>
  <%# ((DataRowView)Container.DataItem)["PostalCode"] %><br>
  <%# ((DataRowView)Container.DataItem)["HomePhone"] %>
  </div></ItemTemplate>
  <AlternatingItemTemplate><div class="alternate">
  <%# ((DataRowView)Container.DataItem)["FirstName"] %>
  <%# ((DataRowView)Container.DataItem)["LastName"] %><br>
  <%# ((DataRowView)Container.DataItem)["Address"] %><br>
  <%# ((DataRowView)Container.DataItem)["City"] %>,
  <%# ((DataRowView)Container.DataItem)["Region"] %>
  <%# ((DataRowView)Container.DataItem)["PostalCode"] %><br>
  <%# ((DataRowView)Container.DataItem)["HomePhone"] %>
  </div></AlternatingItemTemplate>
  <FooterTemplate><div class="footer">
  <%# ((DataView)Repeater1.DataSource).Count + " employees found." %>
  </div></FooterTemplate>
  </asp:Repeater></div></form></body></html>

可以注意到,每个 Repeater 行中样式表控制着文字的外观。除此之外,在网页内容中还添加了一个文本框。嵌入式 C# 代码从 Repeater 的数据源中获取相应的列。每个数据项都被转换成一个DataRowView对象以便显示。
  
  这一页面并不是使用ASP.NET的“后台代码”性质。由于这一原因,页面引用了两个System.Data和System.Data.SqlClient空间名称。这对于使用DataRowView对象和与 SQL Server 交互访问是必需的。
  
  当调用页面时就会触发Page_Load事件。此时会把数据源连接到 Repeater 控件上,并查询数据库。每一Repeater行的代码从潜在数据源中载入数据,并且Web页面显示这些数据。

repeater的使用方法详解相关推荐

  1. python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解

    如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...

  2. python修改文件内容_Python批量修改文本文件内容的方法详解

    这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...

  3. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)

    如何去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  4. Spring JdbcTemplate方法详解

    2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...

  5. golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法详解...

    Golang 实现 PHP里的 serialize() . unserialize() 安装 go get -u github.com/techleeone/gophp/serialize 用法 pa ...

  6. ES5和ES6数组遍历方法详解

    ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1.原始的for循环语句 2.Array.prototype.forEach数组对象内置方法 3.Array.prototype. ...

  7. linux expect 输入密码,shell脚本无密码登录 expect的使用方法详解

    shell脚本无密码登录 expect的使用方法详解 今天需要做一个定时任务脚本将最新的数据包文件传到远程的服务器上,虽然有密钥但也是要求输入密码的那种,所以只能另想办法实现让脚本自动输入密码了. 从 ...

  8. 饥荒怎么自动订阅服务器,饥荒联机版自动挂礼物mod及使用方法详解

    饥荒联机版中官方经常会推出一些挂机掉落礼物的活动,可能一些玩家会觉得很麻烦,下面给大家分享一些自动挂礼物mod和其使用方法,希望可以帮助到各位玩家. 饥荒联机版自动挂礼物mod及使用方法详解 挂礼物m ...

  9. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

最新文章

  1. Recyclerview 添加一个数组
  2. 路由器、路由与路由表
  3. java中椭圆类_Java中的Graphics2D类基本使用的教程
  4. 计算机视觉与深度学习 | 基于Faster R-CNN的目标检测(深度学习Matlab代码)
  5. 第三次学JAVA再学不好就吃翔(part69)--System类
  6. matlab表示时间集合,matlab集合操作
  7. opencv双目视觉标定、匹配和测量 (附代码)(转载)
  8. css3+js打造炫酷图片展示
  9. 他在 Stack Overflow 提问如何黑掉Stack Overflow,结果成了
  10. 互联网时代的软件革命——SaaS架构设计
  11. wps分析工具库如何加载_怎么在wps表格里面加入“数据分析”工具啊?
  12. Quantum Espresso安装
  13. python演示,用经验分布逼近总体精确分布
  14. jQuery漂浮横幅图片广告代码
  15. 英特尔oneAPI—开拓
  16. PTA Python函数题 7-1 模拟乒乓球比赛 (20 分)
  17. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java天气预报系统97z40
  18. Python如何表示π值?
  19. python k折交叉验证,python中sklearnk折交叉验证
  20. 狗狗最近不爱吃饭了,还好有办法应对

热门文章

  1. DedeCMS织梦为文章图片自动添加ALT标签
  2. 中国光无源器件行业市场研究与投资战略报告(2022版)
  3. inet_addr报错
  4. x210---电容式触摸屏学习笔记
  5. nslookup 查邮件服务器地址
  6. matlab相干解调,心电信号的调制与解调(AM调制、相干解调)
  7. DC / DC boost电路带闭环控制
  8. 双网卡同时上网如何设置 双网卡同时上内外网络
  9. 饮用水铁离子超标,各种溶液铁离子超标去除工艺
  10. flush privileges 什么意思?