急,急,按照下面的样式怎么绑定啊

沙伽more 2013-03-06 11:01:09

如图,一个订单下面有一个编号,但是有1至4种人员分类呢,这个怎么绑定啊,下面是HTML代码:
<tr>
<td rowspan="2">
2013001
</td>
<td>
成年人
</td>
<td>
1
</td>
<td>
1000
</td>
<td>
200
</td>
<td>
100
</td>
<td>
0
</td>
<td>
1300
</td>
<td rowspan="2">
<dl>
<dd>
减餐-50</dd>
<dd>
赔款-50</dd>
</dl>
</td>
<td rowspan="2">
2150
</td>
<td rowspan="2">

</td>
</tr>
<tr>
<td>
小孩
</td>
<td>
1
</td>
<td>
800
</td>
<td>
100
</td>
<td>
50
</td>
<td>
0
</td>
<td>
950
</td>
</tr>
<tr>
<td>
2013002
</td>
<td>
成年人
</td>
<td>
1
</td>
<td>
2000
</td>
<td>
0
</td>
<td>
0
</td>
<td>
0
</td>
<td>
2000
</td>
<td>
加餐+50
</td>
<td>
2050
</td>
<td>

</td>
</tr>

注:每个订单下面的分类人员种类个数不确定
...全文
230 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是小李 2013-03-06
  • 打赏
  • 举报
回复
使用Repeater控件,然后在绑定事件里来处理合并列的问题。可以实现的。
yyl8781697 2013-03-06
  • 打赏
  • 举报
回复

class Info
    {
        public string code { get; set; }

        public string name { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {

            List<Info> list = new List<Info>{
              new Info{ code="2013001", name="测试一"},
              new Info{ code="2013002", name="测试二"},
              new Info{ code="2013003", name="测试三"},
              new Info{ code="2013001", name="测试四"},
              new Info{ code="2013001", name="测试五"},
              new Info{ code="2013002", name="测试六"},
              new Info{ code="2013001", name="测试七"}
            };

            Console.WriteLine(GetHtml(list));
            Console.Read();
           
        }

        /// <summary>
        /// 获取html
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        private static string GetHtml(List<Info> list)
        {
            StringBuilder sb = new StringBuilder();
            int index = 1;
            //保存第一个code
            string firstCode = list[0].code;
            //获取与第一个code相同的记录
            List<Info> sameList = list.FindAll(x => x.code == firstCode);

          
                foreach (Info info in sameList)
                { 
                    sb.Append("<tr>");
                    if(index++==1)
                    {
                        //表示有相同的记录
                        if(sameList.Count>1)
                        {
                            sb.Append("<td colspan=\""+sameList.Count+"\">"+info.code+"</td>");
                        }else{
                            //表示就这么一条code的记录
                            sb.Append("<td>"+info.name+"</td>");
                        }
                    }
                    sb.Append("<td>"+info.name+"</td>");
                    sb.Append("</tr>\r\n");
                }
    
            //移除掉与第一个Code相同的记录
                list.RemoveAll(x => x.code == firstCode);
            if (list.Count > 0)
            {
                //递归取html
                sb.Append(GetHtml(list));
            }

            return sb.ToString();
        }

    

    }
中午写的一个简单的递归 LZ可以参考下
gxingmin 2013-03-06
  • 打赏
  • 举报
回复
前台:<td rowspan="<%#GetRowSpan((int)Eval("ID")) %>"> 后台: public int GetRowSpan(int ID) { return 查找ID相同的记录数 }
沙伽more 2013-03-06
  • 打赏
  • 举报
回复
引用 6 楼 gxingmin 的回复:
一个订单有3个类型,查询出来就是3条记录,4个 类型查询出来就是4条记录,按订单号排序 类型:可以参考上面的?:运算符多来几次既可以了 然乎把相同的订单号单元格合并
我最主要的就是:不知道怎么用代码控制把相同订单号的单元格合并
gxingmin 2013-03-06
  • 打赏
  • 举报
回复
一个订单有3个类型,查询出来就是3条记录,4个 类型查询出来就是4条记录,按订单号排序 类型:可以参考上面的?:运算符多来几次既可以了 然乎把相同的订单号单元格合并
沙伽more 2013-03-06
  • 打赏
  • 举报
回复
引用 3 楼 gxingmin 的回复:
XML/HTML code <td rowspan="2"> <%# Eval("ID") %> </td> <td> <%# (int)Eval("Type")==0 ? "成年人" : "小孩" %> </td>
这里面的类型分为:成人,老人,小孩,小孩不占床,四个类型,每个订单可能类型数不同的,有的,可能有三个,有的可能只有一个
yyl8781697 2013-03-06
  • 打赏
  • 举报
回复
我看是在编号相同2013001的情况下合并的行 那你可以在追加html字符串的时候 你可以按照编号分组循环来添加字符串
gxingmin 2013-03-06
  • 打赏
  • 举报
回复
<tr>
                                <td rowspan="2">
                                    <%# Eval("ID") %>
                                </td>
                                <td>
                                    <%# (int)Eval("Type")==0 ? "成年人" : "小孩" %>

                                </td>
                                <td>
                                    <%#Eval("...")%>                                </td>
                                <td>
                                    <%#Eval("...")%>
>                                    </td>
                               ...
                            </tr>
沙伽more 2013-03-06
  • 打赏
  • 举报
回复
引用 1 楼 yyl8781697 的回复:
这种比较复杂的东西 最好不要用控件方式来做 建议LZ在后台拼接html的方式来显示 这个表格,因为比较好判断
我在拼接的时候不知道怎么合并行
yyl8781697 2013-03-06
  • 打赏
  • 举报
回复
这种比较复杂的东西 最好不要用控件方式来做 建议LZ在后台拼接html的方式来显示 这个表格,因为比较好判断
沙伽more 2013-03-06
  • 打赏
  • 举报
回复
引用 9 楼 yyl8781697 的回复:
C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374class Info { public string cod……
谢谢,正在参考中
joyhen 2013-03-06
  • 打赏
  • 举报
回复
这个最好在后台用逻辑判断然后拼接html输出比较好
yuechuan8 2013-03-06
  • 打赏
  • 举报
回复

public void test(){

}


<a href="#">dd</a>
<h1>
ddd

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧