-1

我必须根据这个条件动态创建一个 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>");
4

1 回答 1

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>");
于 2013-01-02T15:30:41.783 回答