我正在开发一个在线订购 Web 应用程序,我必须在其中通过电子邮件将 perches 产品详细信息发送给客户。我已将所有数据维护在数据表中,然后按如下方式实用地生成 GridView
public GridView makeGridview(DataTable Dt)
{
GridView GV = new GridView();
GV.DataSource = Dt;
GV.DataBind();
return GV;
}
然后将这个 GridView 添加到电子邮件
body = body.Replace("{Product_Details}", GridViewToHtml(makeGridview(Dt)));
private string GridViewToHtml(GridView gv)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(sw);
gv.RenderControl(hw);
return sb.ToString();
}
这工作正常,但问题是我无法以我们的预定义格式设计它。这封邮件将由我网站的客户收到,因此我需要转换为我们的客户。 请指导我如何格式化它们。
如果有另一种方法可以做到这一点,那么我也愿意接受。
最佳答案
我建议您不要相信 GridView 作为您呈现的 html,而是使用您当前的数据源 (DataTable):
public GridView CreateHtmlTable(DataTable dt)
{
//Do your HTML work here, like the following:
string tab = "\t";
StringBuilder sb = new StringBuilder();
sb.AppendLine("<html>");
sb.AppendLine(tab + "<body>");
sb.AppendLine(tab + tab + "<table>");
// headers.
sb.Append(tab + tab + tab + "<tr>");
foreach (DataColumn dc in dt.Columns)
{
sb.AppendFormat("<td>{0}</td>", dc.ColumnName);
}
sb.AppendLine("</tr>");
// data rows
foreach (DataRow dr in dt.Rows)
{
sb.Append(tab + tab + tab + "<tr>");
foreach (DataColumn dc in dt.Columns)
{
string cellValue = dr[dc] != null ? dr[dc].ToString() : "";
sb.AppendFormat("<td>{0}</td>", cellValue);
}
sb.AppendLine("</tr>");
}
sb.AppendLine(tab + tab + "</table>");
sb.AppendLine(tab + "</body>");
sb.AppendLine("</html>");
}
关于c# - 如何使用格式在电子邮件中发送 gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249724/