我已将xml
转换为DataTable
。我有datatable
这样的相似之处。它描述了一个特定酒店的房间选择。如果电路板类型,房间类型,房间价格相同,我想把它分成两个房间。
Room 1
Boards Type Room Type Room Price Sleep Up To
Room Only Double Standard 301.280 2 Guests
Room Only Double Standard 301.280 2 Guests
我想让它像这样。
Room 1
Boards Type Room Type Room Price Sleep Up To
Room Only Double Standard 301.280 2 Guests
Room 2
Boards Type Room Type Room Price Sleep Up To
Room Only Double Standard 301.280 2 Guests
以下是我的代码我试过打破这个使用没有客人。在那之后,我发现这不是正确的方式来打破这个只使用没有客人。所以我想打破这个使用3列,并希望打印为2号房间。
PlaceHolder1.Controls.Add(new LiteralControl("<div class='type1 pd10-lr pd15-tb'>"));
var noofroom = (from row2 in dt2.AsEnumerable()
where (Int64)row2["hotelcode"] == hotelcode
select row2.Field<string>("guests")).Distinct();
int a = 1;
foreach (var rcount in noofroom)
{
PlaceHolder1.Controls.Add(new LiteralControl("<div class='rhead'>" +
"Room " + a + "" +
"</div>" +
"<table class='roomtbl'>" +
"<tr>" +
"<td class='tdaltbg'>" +
"<strong> " +
"Board Type</strong></td>" +
"<td class='style30'>" +
"<strong> " +
"Room Type</strong></td>" +
"<td class='tdaltbg'>" +
"<strong> Room Price</strong></td>" +
"<td class='style30'>" +
"<strong> " +
"Sleep Up To</strong></td>" +
"<td class='tdaltbg'>" +
"<strong></strong></td>" +
"</tr>"));
DataRow[] drs = dt2.Select("hotelcode='" + hotelcode + "' AND guests='" + rcount + "'");
foreach (DataRow dr in drs)
{
PlaceHolder1.Controls.Add(new LiteralControl("<tr>" +
"<td class='tdaltbg'>" +
" " +
"" + dr["board"] + "</td>" +
"<td class='style30'>" +
"" + dr["roomtype"] + "</td>" +
"<td class='tdaltbg'>" +
" " +
"£ " + dr["amount"] + "</span></td>" +
"<td class='style30'>" +
" " +
" " + dr["guests"] + " Guests</span></td>" +
"<td class='tdaltbg'>"));
PlaceHolder1.Controls.Add(new LiteralControl("<input type='radio' name='t1' data-price='308.560' checked='checked'/>" +
"</td>" +
"</tr>"));
}
PlaceHolder1.Controls.Add(new LiteralControl("</table>"));
a++;
}
答案 0 :(得分:0)
请试试这个。这里可以将多个列作为参数传递,对于distinct可以传递true。