在Html表中每行显示三个数据单元格

时间:2013-08-02 12:28:46

标签: c# html code-behind

希望在循环遍历字符串值集合的Html表的每一行显示三个数据单元时提供一些帮助。

显示如下

值1 值2 值3
VALUE4 值5 value6

正在考虑与此相关的事情

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>");

但显示器看起来很糟糕 也许帮助 问候

2 个答案:

答案 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>");
}