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="">&nbsp;</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控件的嵌套使用的更多相关文章

  1. Repeater 控件的嵌套使用

      Repeater 控件的嵌套使用   ItemDataBound:数据绑定的时候(正在进行时)发生,多用在Repeater控件嵌套,对子Repeater控件进行数据绑定及模板列中统计列的计算处理等 ...

  2. ASP.NET- 查找Repeater控件中嵌套的控件

    如何在Repeater的HeaderTemplate和FooterTemplate模板中寻找控件?在Repeater的ItemTemplate模板中的控件,我们可以用Items属性来遍历行并用Find ...

  3. Repeater控件三层嵌套-内层Repeater添加绑定事件

    用Repeater三层嵌套,最外层Repeater可以生成自己的ItemCommand事件.但接下来中间层因为是嵌套了的,所以无法在属性窗口中生成自己的事件.如果手动敲入则无效. 解决办法是需要通过编 ...

  4. 使用Repeater控件实现三层嵌套以及分页效果

    PS: 第一次用Repeater控件 记录一下 请忽略我的命名不规范  请忽略我的最终效果图(太丑了) 需要用到的朋友可以自行调整的漂亮点 ====================最终效果图===== ...

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

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

  6. asp.net repeater控件操作

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

  7. asp.net动态网站repeater控件使用及分页操作介绍

    asp.net动态网站repeater控件使用及分页操作介绍 1.简单介绍 Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功 ...

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

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

  9. Repeater 控件

    Repeater 控件是一个容器控件,可用于从网页的任何可用数据中创建自定义列表.Repeater 控件没有自己内置的呈现功能,这意味着用户必须通过创建模板来提供 Repeater 控件的布局.当网页 ...

随机推荐

  1. JavaScript忍者秘籍——驯服线程和定时器

    1.定时器和线程 - 设置和清除定时器 JavaScript提供了两种方式,用于创建定时器以及两个相应的清除方法.这些方法都是window对象上的方法. 方法 格式 描述 setTimeout   i ...

  2. Java 序列化 JDK序列化总结

    Java 序列化 JDK序列化总结 @author ixenos Java序列化是在JDK 1.1中引入的,是Java内核的重要特性之一.Java序列化API允许我们将一个对象转换为流,并通过网络发送 ...

  3. 编译搭建Lamp服务器

    Lamp 是目前倍受欢迎的一种网站服务器.其主要有linux+apache+mysql+php 组成.由于其组成成员都是开源免费的产品,所以被作为中小型网站服务器的选择.LZ之前在学校学linux的时 ...

  4. [编码解码] Base64 编码换行和+号遍空格的处理

    Android自身带有Base64加密与解密的包,可以方便地加密密码方便传输. String base64Token = Base64.encodeToString(token.trim().getB ...

  5. UIDatePicker 时间滚动表

    UIDatePicker *datapicker; //时间滚动表 datapicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(50, 200 ...

  6. Qt事件和事件循环

    在处理QT循环事件的时候遇到了问题,查了半天资料都没弄明白问题出在哪,后来找大牛同事问了一下,同事就给我写了QCoreApplication::processEvent()这个函数,好啦,终于搞定了, ...

  7. 生成元(Digit Generator,ACM/ICPC Seoul 2005,UVa 1583)

    #include<cstdio>#include<cstdlib>#include<cstring>using namespace std;int t, n, a, ...

  8. 阅读国外大神对this的分析,自己的总结

    大神的分析地址:http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/#comment- ...

  9. asp.net 后台验证成功(弹出对话框)并跳转?不能实现

    原始 Context.Response.Write("<script></script>"); Response.Redirect(); 解决办法: Cli ...

  10. zTree 勾选checkbox

    zTree 勾选checkbox var setting = {    check: {        enable: true//        chkboxType : { "Y&quo ...