0

我在 C#.Net(桌面应用程序)中创建了 GridView。现在我想通过邮件将此 Gridview 发送给用户。

请告诉我如何实现这一点(通过将网格导出为 HTML 或其他方式??)。

我在下面的 HTML 中尝试过,但遇到了很多格式问题。

dataGridView1.Rows[i].Cells[1].Value = data1.ToString();
dataGridView1.Rows[i].Cells[3].Value = data2.ToString();

mailBody.AppendFormat("<td>{0}</td>",data1.ToString() );
mailBody.AppendFormat("<td>{0}</td>", data2.ToString()); 
4

1 回答 1

0

这样做...我有Gridview,它是在没有数据源的情况下以编程方式生成的,所以面临问题...

下面的技巧奏效了:) :)

  DataTable dt = new DataTable();
        foreach (DataGridViewColumn col in dataGridView1.Columns)
        {
            dt.Columns.Add(col.HeaderText);
        }

        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            DataRow dRow = dt.NewRow();
            foreach (DataGridViewCell cell in row.Cells)
            {
                dRow[cell.ColumnIndex] = cell.Value;
            }
            dt.Rows.Add(dRow);
        }

      //  StringBuilder myBuilder = new StringBuilder();

        myBuilder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");
        myBuilder.Append("style='border: solid 1px Silver; font-size: x-small;'>");

        myBuilder.Append("<tr align='left' valign='top'>");
        foreach (DataColumn myColumn in dt.Columns)
        {
            myBuilder.Append("<td align='left' valign='top'>");
            myBuilder.Append(myColumn.ColumnName);
            myBuilder.Append("</td>");
        }
        myBuilder.Append("</tr>");

        foreach (DataRow myRow in dt.Rows)
        {
            myBuilder.Append("<tr align='left' valign='top'>");
            foreach (DataColumn myColumn in dt.Columns)
            {
                myBuilder.Append("<td align='left' valign='top'>");
                myBuilder.Append(myRow[myColumn.ColumnName].ToString());
                myBuilder.Append("</td>");
            }
            myBuilder.Append("</tr>");
        }
        myBuilder.Append("</table>");
    }
于 2013-04-23T12:44:46.653 回答