希望在循环遍历字符串值集合的Html表的每一行显示三个数据单元时提供一些帮助。
显示如下
值1 值2 值3正在考虑与此相关的事情
sb.Append("<table");
sb.Append("<tbody>");
for (int i = 0; i < items.Count; i++)
{
var subjectName = items[i].toString();
if (i % 3 == 0)
{
sb.Append("<tr>");
sb.Append("<td>");
sb.Append("<a href='url'>" + subjectName + "</a>");
sb.Append("</td>");
sb.Append("</tr>");
}
else
{
sb.Append("<td>");
sb.Append("<a href='url'>" + subjectName + "</a>");
sb.Append("</td>");
}
}
sb.Append("</tbody>");
sb.Append("</table>");
但显示器看起来很糟糕 也许帮助 问候
答案 0 :(得分:1)
您必须在for循环之外指定行定义,如下所示:
sb.Append("<table");
sb.Append("<tbody>");
sb.Append("<tr>"); //will only create one row with 3 cells inside
for (int i = 0; i < items.Count; i++)
{
var subjectName = items[i].toString();
sb.Append("<td>");
sb.Append("<a href='url'>" + subjectName + "</a>");
sb.Append("</td>");
}
sb.Append("</tr>");
sb.Append("</tbody>");
sb.Append("</table>");´
如果你想用1个或更多个单元格做几行,你必须使用2个for循环,1个枚举抛出你的行,1个枚举你的单元格内容,如:
sb.Append("<table");
sb.Append("<tbody>");
for (int j = 0; j < rows.count; j++)
{
sb.Append("<tr>"); //create the number of rows you have specified in the j for loop
for (int i = 0; i < items.Count; i++)
{
var subjectName = items[i].toString();
sb.Append("<td>");
sb.Append("<a href='url'>" + subjectName + "</a>");
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("</tbody>");
sb.Append("</table>");´
答案 1 :(得分:0)
我会使用partinioning方法(如jon skeet的here)。然后只需使用双循环来创建像这样的行
foreach (var row in items.Partition(3))
{
sb.Append("<tr>");
foreach (var subjectName in row)
{
sb.AppendFormat("<td><a href='url'>{0}</a></td>", subjectName);
}
sb.AppendLine("</tr>");
}