循环遍历特定的项目集

时间:2013-01-02 14:33:46

标签: c# c#-4.0

我必须在这种情况下动态创建一个HTML表。应该动态生成列数,在我们的例子中我们将假设2.因此,我有一个项目列表,我必须填写此表与在生成它们时填充列的项目。代码行为不正确,也不包括最后一项。有人可以指导我做一个简单的方法。

List<NItem> item = new List<NItem>();   

StringBuilder build = new StringBuilder();
    build.Append("<table>");


    for (int q = 0; q < item.Count; q++)
    {
        build.Append("<tr>");
        for (int i = 0; i < columns; i++)
        {               

            build.Append("<td>");
            build.Append(string.Format("<a title= \"{0}\" href=\"{1}\" target=\"_blank\">{2}</a> ", item[i].ToolTip, item[i].Link, item[i].LinkDescription));
            build.Append("</td>");




        }
        build.Append("</tr>");
    }
    build.Append("</table>");

1 个答案:

答案 0 :(得分:0)

这可能不是实现目标的理想方式,但我相信这会修复您的代码。第二个循环只是一遍又一遍地添加第一个和第二个项目。

List<NItem> item = new List<NItem>();   

StringBuilder build = new StringBuilder();
build.Append("<table>");

// Increment the counter by the number of columns
for (int q = 0; q < item.Count; q += columns)
{
    build.Append("<tr>");

    for (int i = 0; i < columns; i++)
    {               
        build.Append("<td>");

        if (q + i < item.Count)
        {
            // Grab the item for this column by adding the column index to the item index that we started with
            var currentItem = item[q + i];
            build.Append(string.Format("<a title= \"{0}\" href=\"{1}\" target=\"_blank\">{2}</a> ", currentItem.ToolTip, currentItem.Link, currentItem.LinkDescription));
        }

        build.Append("</td>");
    }
    build.Append("</tr>");
}

build.Append("</table>");