Repeater控件的嵌套使用
1.前台代码:
<asp:Repeater ID="OrderList" runat="server"
onitemdatabound="OrderList_ItemDataBound">
<ItemTemplate>
<div class="item">
<table class="table" style=" border:1px solid #DDCCCC;; border-right:none;" cellspacing="" cellpadding="">
<tr><td rowspan="" colspan=""><h1>益农乐游农品清单</h1></td><td>发货单号:</td><td colspan=""></td></tr>
<tr><td>时间:</td><td colspan=""></td></tr>
<tr><td >订单号:</td>
<td colspan=""><%#Eval("orderCode")%></td>
<td>下单时间:</td>
<td colspan=""><%#Eval("ordertime")%></td></tr>
<tr><td >收货人:</td><td><%#Eval("consignee")%></td><td>地址:</td><td colspan="" style=" text-align:left;"><%#Eval("address")%></td></tr>
<tr><td >电话:</td><td colspan="" style=" text-align:left"><%#Eval("mobile")%></td></tr>
<tr><td colspan=""> </td></tr>
<tr><td>序号</td><td colspan="">农品描述</td><td>单价</td><td>数量</td><td>金额</td></tr>
<asp:Repeater runat="server" ID="detailOrder">
<ItemTemplate>
<tr><td><%#Eval("rowID")%></td>
<td colspan="" class="tr" style=" text-align:left"><%#Eval("Name")%></td>
<td><%#Eval("UnitPrice")%></td>
<td><%#Eval("Count")%></td><td>
<%#Eval("TotalPrice")%></td></tr>
</ItemTemplate>
</asp:Repeater>
<tr><td class="dd">配送费:</td><td><%#Eval("express")%></td><td class="dd">促销折扣:</td><td colspan="" class="dd"><%#Eval("perferPrice")%></td><td class="dd">订单金额:</td><td><%#Eval("amount")%></td><td class="dd" style=" ">游游卡支付:</td><td><%#Eval("ka")%></td></tr>
<tr><td>已付款:</td><td><%#Eval("resultAmount")%></td><td>应付款:</td><td colspan="" style="text-align:left;"><%#Eval("resultAmount")%></td></tr>
</table>
</div>
</ItemTemplate> </asp:Repeater>
2.后台代码:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
string ids =Request.Params["ids"];
string[] array = ids.Split(new char[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
string newids = string.Join(",", array);
InitData(newids);
}
}
public void InitData(string newids)
{
var _list = odpdbasicBLL.GetModelList(" ID in (" + newids + ")").Select(c => new OrderNode
{
orderID=c.ID,
orderCode = c.OrderCoder,
ordertime = c.Created.ToString(),
consignee = c.Consignee,
mobile = c.Mobile,
address =c.Address +"(" +c.PostCode+")",
amount = string.Format("{0:.00}",c.Amount), //金额
perferPrice ="未打折" ,//打折
express =c.Express==?"0.00":string.Format("{0:.00}",c.Express),
resultAmount =string.Format("{0:.00}",Convert.ToDouble(c.Amount) -Convert.ToDouble(c.SubPrice) + Convert.ToDouble(c.Express)),
yingAmount=c.Status==?string.Format("{0:.00}",Convert.ToDouble(c.Amount) -Convert.ToDouble(c.SubPrice) + Convert.ToDouble(c.Express)):"0.00",
ka="0.00"
}).ToList();
OrderList.DataSource = _list;
OrderList.DataBind();
} protected void OrderList_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rep = e.Item.FindControl("detailOrder") as Repeater;//找到里层的repeater对象
OrderNode rowv = (OrderNode)e.Item.DataItem;//找到分类Repeater关联的数据项
int ID= rowv.orderID; //获取填充子类的orderID
int i = ;
var _list = odpddetailBLL.GetModelList("OrderID=" + ID).Select(c => new
{
rowID=i++,
Name=c.Name+"("+c.ProNameStr+")",
UnitPrice=c.UnitPrice,
TotalPrice=c.TotalPrice,
Count=c.Count, }).ToList();
rep.DataSource =_list;
rep.DataBind();
}
}
3.说明:
因为数据是model类型的所以在
OrderNode rowv = (OrderNode)e.Item.DataItem;//找到分类Repeater关联的数据项
是转成model类型,若是数据是table类型,那么在此就应该是
DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项
Repeater控件的嵌套使用的更多相关文章
- Repeater 控件的嵌套使用
Repeater 控件的嵌套使用 ItemDataBound:数据绑定的时候(正在进行时)发生,多用在Repeater控件嵌套,对子Repeater控件进行数据绑定及模板列中统计列的计算处理等 ...
- ASP.NET- 查找Repeater控件中嵌套的控件
如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用Find ...
- Repeater控件三层嵌套-内层Repeater添加绑定事件
用Repeater三层嵌套,最外层Repeater可以生成自己的ItemCommand事件.但接下来中间层因为是嵌套了的,所以无法在属性窗口中生成自己的事件.如果手动敲入则无效. 解决办法是需要通过编 ...
- 使用Repeater控件实现三层嵌套以及分页效果
PS: 第一次用Repeater控件 记录一下 请忽略我的命名不规范 请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点 ====================最终效果图===== ...
- Repeater控件 ---表格展示数据
简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repea ...
- asp.net repeater控件操作
Repeater控件和DataList控件,可以用来一次显示一组数据项.比如,可以用它们显示一个数据表中的所有行. Repeater控件完全由模板驱动,提供了最大的灵活性,可以任意设置它的输出格式. ...
- asp.net动态网站repeater控件使用及分页操作介绍
asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...
- ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作
说明:由于Repeater控件是动态绑定,通过Id获取数据只能默认获取第一行: 1.对Repeater中div设置样式 2.通过$(".css").each(function(){ ...
- Repeater 控件
Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供 Repeater 控件的布局.当网页 ...
随机推荐
- [SQL基础教程] 2-1 SELECT语句基础
[SQL基础教程] 2-1 SELECT语句基础 列的查询 Syntax SELECT<列名>,..... FROM<表名>; SELECT col_1, col_2 FROM ...
- NEUQ1038: 谭浩强C语言(第三版)习题4.8
之前没做对的一道题,今天集中清理一下. //------------------- 很水的题,主要是 %.2lf 不能四舍五入,需要仅保留两位小数,用了丑陋的强制类型转换... //--------- ...
- springmvc注释
//请求json串(商品信息) 输出json(商品信息) //@RequestBody将请求的商品信息的json串转成itemsCustom对象 //@ResponseBody将itemsCus ...
- 一步步优化JVM二:JVM部署模型和JVM Runtime
选择JVM部署模型 JVM部署模型的选择总体来说就是决定应用是部署在单个JVM实例还是多个JVM实例上(这里简单举例说明一下JVM实例,比如:我们常用eclipse开发,启动一个eclipse就 ...
- shell的入门
shell :弱类型. 解释型语言 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 ...
- for clean
static(修饰变量方,法:静态块:静态内部类:静态导包) final transient 作用foreach 原理 volatile底层原理实现 集合LIST MAP SET 实现类的底层原理优, ...
- 小白学C++的小问题
昨天开始学习C++,使用的visual studio 2012. 1命名要有意义,避免用a,b,c,尽量使用num,result等让人看见就能明白相关含义的名字 2要有一定的注释,注释和有意义的命名可 ...
- 3.linux常用软件的安装方法
linux 上的软件不像windows上直接运行安装那么容易,在linux上有很多不同的安装包,大概常见的就有deb.tar.gz.tar.bz(tar.bz2).rpm等类型文件 1.deb文件安装 ...
- SQLite学习网址
http://www.runoob.com/sqlite/sqlite-data-types.html
- hadoop中,combine、partition、shuffle作用分别是什么?
combine和partition都是函数,中间的步骤应该只有shuffle! combine分为map端和reduce端,作用是把同一个key的键值对合并在一起,可以自定义的.combine函数把一 ...