我必须在这种情况下动态创建一个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>");
答案 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>");