在 Webform 数据展示中      界面层  : HTLM

业务逻辑层 :只能用 C#

 Repeater    重复器  能够用来循环展示数据

具有5种模板

 HeaderTemplate : 对页眉进行格式设置 ,在加载开始执行一遍,(不论放置什么位置都会首先执行)

 FooterTemplate : 对页脚进行格式设置,在加载最后执行一遍

 ItemTemplate : 对每一个数据项进行格式设置 (有多少数据就执行多少次)

AlternatingItemTemplate : 对交替数据项进行格式设置

SeparatorTemplate : 对分隔符进行格式设置

绑定数据

 <%@     %>       写一些声明语言或者引用

 <%        %>        编写C#代码,无法在界面上输出

 <%=      %>        等号后面接一个值,把一个变量的值输出

 <%#     %>         仅在数据展示中  仅 Repeater 中使用

例 1 、用表格展示学生表的数据

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// Users 的摘要说明
/// </summary>
public class Users
{
public int Ids { get; set; }
public string UserName { get; set; }
public string PassWord { get; set; }
public string NickName { get; set; }
public bool Sex { get; set; } public string SexStr
{
get
{
return Sex ? "男" : "女";
}
} public DateTime Birthday { get; set; }
public string Nation { get; set; } public int Age
{
get
{
return DateTime.Now.Year - Birthday.Year;
}
} public string WhiteOrRed
{
get
{
return Age >= ? "white" : "red";
}
} public string SexImg
{
get
{
return Sex ? "images/1.png" : "images/0.png";
}
} } Users.cs

Users.cs

-- 在 WebForm 中 原生的没有 命名空间

-- 类的属性 不全都是为了给用户展示的 ,也可以输出代码改变展示内容

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient; /// <summary>
/// UsersData 的摘要说明
/// </summary>
public class UsersData
{
SqlConnection conn = null;
SqlCommand cmd = null;
public UsersData()
{
conn = new SqlConnection("server=.;database=Data0216_5;user=sa;pwd=123");
cmd = conn.CreateCommand();
} public List<Users> SelectAll()
{
List<Users> ulist = new List<Users>();
cmd.CommandText = "select *from Users"; conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Users u = new Users();
u.Ids = Convert.ToInt32(dr[]);
u.UserName = dr[].ToString();
u.PassWord = dr[].ToString();
u.NickName = dr[].ToString();
u.Sex = Convert.ToBoolean(dr[]);
u.Birthday = Convert.ToDateTime(dr[]);
u.Nation = dr[].ToString();
ulist.Add(u);
}
conn.Close();
return ulist;
} } UsersData

UsersData

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.DataSource = new UsersData().SelectAll();
Repeater1.DataBind();
}
} Default.aspx.cs

Default.aspx.cs

Repeater1.DataSource = new UsersData().SelectAll();   --数据源指向

Repeater1.DataBind();                                                --  DataBind   控件都需要它来控制数据的操作                 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
<form id="form1" runat="server"> <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <%--页眉设置--%> <table style="width: 100%; background-color: navy; text-align: center;">
<tr style="color: white; height: 30px;">
<td>编号</td>
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>年龄</td>
<td>民族</td>
</tr> </HeaderTemplate> <ItemTemplate> <%--数据项设置--%> <tr style="background-color: <%#Eval("WhiteOrRed") %>;"> <%--小于16变为红色--%>
<td><%#Eval("Ids") %></td>
<td><%#Eval("UserName") %></td>
<td><%#Eval("PassWord") %></td>
<td><%#Eval("NickName") %>同学</td>
<td>
<img src="<%#Eval("SexImg") %>" /></td>
<td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("Nation") %></td>
</tr>
</ItemTemplate> <FooterTemplate> <%--页脚设置-%>
</table>
</FooterTemplate>
</asp:Repeater> </form>
</body>
</html> Default.aspx1

Default.aspx1

         <tr style = "background-color:<%#Eval(" WhiteOrRed") %>;">

                                                                                          -- 扩展属性作为调节改变展示内容  

             <%# Eval( " 属性名 "  )    %>                  

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
</head>
<body>
<form id="form1" runat="server"> <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate> <table style="width: 100%; background-color: navy; text-align: center;">
<tr style="color: white; height: 30px;">
<td>编号</td>
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>年龄</td>
<td>民族</td>
</tr>
</HeaderTemplate> <ItemTemplate> <tr style="background-color: white;">
<td><%#Eval("Ids") %></td>
<td><%#Eval("UserName") %></td>
<td><%#Eval("PassWord") %></td>
<td><%#Eval("NickName") %>同学</td>
<td>
<img src="<%#Eval("SexImg") %>" /></td>
<td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("Nation") %></td>
</tr> </ItemTemplate> <AlternatingItemTemplate> <%--读数据项交替格式设置--%> <tr style="background-color: aqua;">
<td><%#Eval("Ids") %></td>
<td><%#Eval("UserName") %></td>
<td><%#Eval("PassWord") %></td>
<td><%#Eval("NickName") %>同学</td>
<td>
<img src="<%#Eval("SexImg") %>" /></td>
<td><%#Eval("Birthday","{0:yyyy年MM月dd日}") %></td>
<td><%#Eval("Age") %></td>
<td><%#Eval("Nation") %></td>
</tr> </AlternatingItemTemplate> <FooterTemplate>
</table>
</FooterTemplate> </asp:Repeater> </form>
</body>
</html> Default.aspx2

Default.aspx2

--使用 AlternatingItemTemplate 使展示结果交替变色展示

-- 在数据展示时 可只用 ItemTemplate 数据项模板,防止因数据库没有数据而表头不显示。

-- 在数据库无内容时,Repeater 所夹内容都不会显示(包括页眉、页脚)

例2、用 Repeater 灵活展示购物站内容

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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 type="text/css">
* {
padding: 0px;
margin: 0px;
} #header {
width: %;
height: 80px;
background-color: orange;
} #footer {
width: %;
height: 150px;
background-color: black;
} #main {
width: %;
margin-left: %;
background-color: lightblue;
} .item {
width: %;
margin: 10px %;
float: left;
height: 300px;
background-color: red;
} .item-img {
width: %;
margin: 5px %;
height: %;
background-color: green;
} .item-name {
width: %;
margin: %;
font-size: 20px;
font-weight: bold;
} .item-price {
width: %;
margin-left: %;
} .item-price-old {
font-size: 16px;
text-decoration: line-through;
} .item-price-new {
font-size: 25px;
color: orange;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="header"></div> <%--中间部分--%>
<div id="main"> <%--开重复器--%>
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <%--每个div都是一个超链接,链接到单个商品信息--%>
<a href="Default2.aspx?i=<%#Eval("Ids") %>" target="_blank"> <div class="item"> <img src="<%#Eval("Pic") %>" class="item-img" /> <%--图片--%> <div class="item-name"><%#Eval("Name") %></div> <%--名称--%> <div class="item-price"> <%--价格--%>
<span class="item-price-new"><%#Eval("New_Price") %>元</span>
<span class="item-price-old"><%#Eval("Old_Price") %>元</span>
</div> </div> </a> </ItemTemplate> </asp:Repeater> <%--清流--%>
<div style="clear: both;"></div> <%--中间部分结束--%>
</div> <div id="footer"></div>
</form>
</body>
</html>

综合展示

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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 type="text/css">
.img1 {
width: %;
height: 400px;
background-color: red;
float: left;
} .right {
width: %;
height: 400px;
background-color: green;
float: left;
font-size: 30px;
} .content {
width: %;
height: 500px;
background-color: yellow;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<%--图片--%>
<asp:Image ID="Image1" CssClass="img1" runat="server" /> <%--右侧部分--%>
<div class="right"> <div class="name"> <%--名称--%>
<asp:Literal ID="lit_Name" runat="server"></asp:Literal>
</div> <div class="has">
库存:
<asp:Literal ID="lit_Has" runat="server"></asp:Literal>

</div> <div class="old_price"> <%--老价格--%>
<asp:Literal ID="lit_Old" runat="server"></asp:Literal>
</div> <div class="new_price"> <%-- 新价格--%>
<asp:Literal ID="lit_New" runat="server"></asp:Literal>
</div> <input type="button" value="加入购物车" />
</div> <div style="clear: both;"></div> <%--清流--%> <div class="content"> <%--产品介绍--%>
<asp:Literal ID="lit_Content" runat="server"></asp:Literal>
</div> </form>
</body>
</html>

单个商品展示

  ——先将 HTML 页面展示出来(搭起界面),碰到需要执行或接收服务器加载的表单元素 再将其替换成控件

 Repeater的Command用法 

当Repeater里面循环控件时就会用到command,

是Repeater控件的原生事件用法

Repeater里面如果循环控件,控件的ID是会被改变的

ItemCommand    -- 事件】任何控件执行提交都来触发这个事件

属性(循环的控件)      CommandName="变量"                    -- 自己随便设的变量 ——定位用

CommandArgument="传递的参数"      -- 传递要进行操作 的参数

后台接收

e.CommandName =="变量"         -- 找到要操作的对象

e.CommandArgument                 -- 要操作的数据

ItemCreated           -- 绑定数据之前,创建行之后

ItemDataBound      -- 绑定数据之后,执行一遍

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>

<!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>
</head>
<body>
<form id="form1" runat="server"> <table style="width: 100%; text-align: center; background-color: navy;">
<tr style="color: white;">
<td>编号</td>
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>民族</td>
<td>操作</td>
</tr> <asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr style="background-color: white;">
<td><%#Eval("Ids") %></td>
<td><%#Eval("UserName") %></td>
<td><%#Eval("PassWord") %></td>
<td><%#Eval("NickName") %></td>
<td><%#Eval("Sex") %></td>
<td><%#Eval("Nation") %></td>
<td> <asp:Button ID="Button2" CommandName="u" CommandArgument='<%#Eval("Ids") %>' runat="server" Text="修改" />
<asp:Button ID="Button1" CommandName="d" CommandArgument='<%#Eval("Ids") %>' runat="server" Text="删除" />
<%--自定义属性,用以定位 传值--%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater> </table>
<%--测验展示用--%>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<asp:Button ID="Button3" runat="server" Text="Button" />
</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 Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Repeater1.ItemCommand += Repeater1_ItemCommand;
Repeater1.ItemCreated += Repeater1_ItemCreated;
Repeater1.ItemDataBound += Repeater1_ItemDataBound; if (!IsPostBack)
{
Repeater1.DataSource = new UsersData().SelectAll();
Repeater1.DataBind();
}
} //绑定数据之后执行
void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{ RepeaterItem ri = e.Item; //e.Item e中的数据
// 每行是一个RepeaterItem 类型的数据 Users u = ri.DataItem as Users; // 将每行数据转换成users类型 if (u.Sex)
{
ri.Visible = false; //所有 男 的不显示
}
} //绑定数据之前,创建行之后执行
void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
{
Label1.Text += "";
} void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "u") //当选择 u 时
{
Label1.Text += "修改" + e.CommandArgument;
}
else if (e.CommandName == "d") //当选择 d 时
{
Label1.Text += "删除" + e.CommandArgument;
}
}
}

后台代码

WebForm 【Repeater】展示数据的更多相关文章

  1. repeater灵活运用、repeater的commmand用法、如何不用repeater展示数据

    实体类: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <su ...

  2. WebForm Repeater的事件、后天数据展示--2017年1月8日

    Repeater的Command操作 1.ItemCommand事件 :在Repeater中所有能触发事件的控件,都会来触发这一个事件 CommandName : 判断点击的是什么按钮,e.Comma ...

  3. Repeater控件 ---表格展示数据

    简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repea ...

  4. C#-WebForm-Repeater的灵活运用、ItemCommand的用法-增删改查、如何不适用Repeater来展示数据?

    浏览器页面: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defau ...

  5. Repeater展示表格

    1.可以不用table展示数据 <asp:Repeater ID="Repeater1" runat="server"> <ItemTempl ...

  6. Webform Repeater的灵活运用

    案例:模拟购物列表 封装实体类:   数据访问类: 用Repeater展示: 1 <%@ Page Language="C#" AutoEventWireup="t ...

  7. 使用UITableView展示数据

    TableView主要用于展示数据,类似于Android中的ListView. 我们可以通过两个方式使用TableView.第一种是直接使用TableView类.第二种是通过UITableViewCo ...

  8. PHP+Mysql+jQuery实现地图区域数据统计-展示数据

    我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...

  9. C#-WinForm-ListView-表格式展示数据、如何将数据库中的数据展示到ListView中、如何对选中的项进行修改

    在展示数据库中不知道数量的数据时怎么展示最好呢?--表格 ListView - 表格形式展示数据 ListView 常用属性 HeaderStyle - "详细信息"视图中列标头的 ...

随机推荐

  1. lombok(@Getter&@Setter)

    Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法. 官方地址:https://project ...

  2. ABP框架系列之十七:(Data-Filters-数据过滤)

    Introduction It's common to use the soft-deletepattern which is used to not delete an entity from da ...

  3. Python开发——6.文件操作

    一.文件操作 1.文件操作的处理流程 打开文件得到文件句柄并赋值给一个变量====>通过句柄对文件进行分析====>关闭文件 #1. 打开文件,得到文件句柄并赋值给一个变量 f=open( ...

  4. PLSQL基础知识-图片

    什么是PL/SQL?

  5. 图像质量评价方法PSNR+SSIM&&评估指标SROCC,PLCC

    update:2018-04-07 今天发现ssim的计算里面有高斯模糊,为了快速计算,先对每个小块进行计算,然后计算所有块的平均值.可以参考源代码实现,而且代码实现有近似的在里面!matlab中中图 ...

  6. kaldi的TIMIT实例一

    TIMIT语音库是IT和MIT合作音素级别标注的语音库,用于自动语音识别系统的发展和评估,包括来自美式英语,8个地区方言,630个人. 每个人读10个句子,每个发音都是音素级别.词级别文本标注,16k ...

  7. Struts2 项目 Action 查询结果异常 org.apache.struts2.json.JSONException

    问题描述 今天进行一个订单管理模块的开发时遇到一个问题:查询的订单时有时会报这个异常: org.apache.struts2.json.JSONException: java.lang.Illegal ...

  8. 从CSR产品名录看公司发展历程和业务方向

    产品型号                                                                           主要功能 BC3系列(例BC31A223, ...

  9. ELKstack简介及环境部署

    ELK工作流程图 环境准备 安装Logstash依赖包JDK Logstash的运行依赖于Java运行环境, Logstash 1.5以上不低于java 7推荐使用最新版本的Java.由于只是运行Ja ...

  10. 导入Excel文件

    选择文件 #region //获取路径 string FilePath = ""; //选择文件 OpenFileDialog openFileDialog1 = new Open ...