如何使用c#为每个dataGridView行项指定HTML

时间:2014-01-12 18:19:42

标签: c# winforms datagridview webbrowser-control

我目前使用字符串构建器和各种循环来将一些HTML解析为webBrowser控件。但是我如何具体来自dataGridView1的每一列和值,以便我可以包装HTML。我的dataGridView1中有一个包含行值的列,它是一个图像URL。

private StringBuilder htmlMessageBody(DataGridView dataGridView2)
{
    StringBuilder strB = new StringBuilder();
    //create html & table
    strB.AppendLine("<html><body><center><" +
                    "table border='1' cellpadding='0' cellspacing='0'>");
    strB.AppendLine("<tr>");
    //cteate table header
    for (int i = 0; i < dataGridView2.Columns.Count; i++)
    {
        strB.AppendLine("<td align='center' valign='middle'>" +
                        dataGridView2.Columns[i].HeaderText + "</td>");
    }
    //create table body
    strB.AppendLine("<tr>");
    for (int i = 0; i < dataGridView2.Rows.Count; i++)
    {
        strB.AppendLine("<tr>");
        foreach (DataGridViewCell dgvc in dataGridView2.Rows[i].Cells)
        {
            strB.AppendLine("<td align='center' valign='middle'>" +
                            dgvc.Value.ToString() + "</td>");
        }
        strB.AppendLine("</tr>");

    }
    //table footer & end of html file
    strB.AppendLine("</table></center></body></html>");
    return strB;


}

1 个答案:

答案 0 :(得分:0)

 //create table body
strB.AppendLine("<tr>");

我认为这需要

 //create table body
strB.AppendLine("</tr>");

在开始包含更多表行之前关闭行标记。

如果在return语句中放置断点,则可以将StrB的内容复制到html编辑器中,该编辑器应突出显示错误。