读书人

急按照上面的样式如何绑定

发布时间: 2013-03-12 11:19:35 作者: rapoo

急,急,按照下面的样式怎么绑定啊
急按照上面的样式如何绑定
如图,一个订单下面有一个编号,但是有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>


注:每个订单下面的分类人员种类个数不确定 repeater 数据绑定 样式 asp.net c#
[解决办法]
前台:<td rowspan="<%#GetRowSpan((int)Eval("ID")) %>">

后台:
public int GetRowSpan(int ID)
{
return 查找ID相同的记录数
}
[解决办法]

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可以参考下

读书人网 >asp.net

热点推荐