如何创建新的gridview并填充后面的代码并作为电子邮件正文发送?

时间:2013-04-30 06:07:55

标签: c# asp.net

如何创建新的gridview/datalist并填充后面的代码并发送为email body? 我已经填充了DataList项,但我不想发送其中的所有列。所以,我想用我想要的列生成一个gridview,用于发送电子邮件。 以下是我为

所做的事情
            GridView gv = new GridView();
            DataTable tbl = new DataTable();
            tbl.Columns.Add("Items", typeof(string));
            tbl.Columns.Add("Price", typeof(string));
            tbl.Columns.Add("Total", typeof(string));
            List<HiredList> hl = new List<HiredList>();
            hl = (List<HiredList>)Session["Hired"];
            foreach (var i in hl)
            {
                DataRow itms = tbl.NewRow();
                itms["Items"] = i.pName;
                itms["Price"] = i.price;
                itms["Total"] = i.pTotal;
            }
            //use AutoGenerateColumnsto let grid generate the column itself'
            gv.AutoGenerateColumns = true;
            gv.DataSource = tbl;
            gv.DataBind();

然后将此gridview发送到

private string GetGridviewData(GridView gvList)
    {
        StringBuilder strBuilder = new StringBuilder();
        StringWriter strWriter = new StringWriter(strBuilder);
        HtmlTextWriter htw = new HtmlTextWriter(strWriter);
        gvList.RenderControl(htw);
        return strBuilder.ToString();
    }

但作为回报,我只收到,在收到的电子邮件中。 我不知道我犯了什么错误。

1 个答案:

答案 0 :(得分:0)

在gridview中将数据作为邮件发送:

 public void SendHTMLMail()
{
MailMessage Msg = new MailMessage();
MailAddress fromMail = new MailAddress("administrator@aspdotnet-suresh.com");
// Sender e-mail address.
Msg.From = fromMail;
// Recipient e-mail address.
Msg.To.Add(new MailAddress("suresh@gmail.com"));
// Subject of e-mail
Msg.Subject = "Send Gridivew in EMail";
Msg.Body += "Please check below data <br/><br/>";
Msg.Body += GetGridviewData(gvUserInfo);
Msg.IsBodyHtml = true;
string sSmtpServer = "";
sSmtpServer = "10.2.160.101";
SmtpClient a = new SmtpClient();
a.Host = sSmtpServer;
a.EnableSsl = true;
a.Send(Msg);
}

//此方法用于渲染gridview控件

public string GetGridviewData(GridView gv)
{
StringBuilder strBuilder = new StringBuilder();
StringWriter strWriter = new StringWriter(strBuilder);
HtmlTextWriter htw = new HtmlTextWriter(strWriter);
gv.RenderControl(htw);
return strBuilder.ToString();
}

参考链接:

http://www.aspdotnet-suresh.com/2012/09/how-to-send-gridview-in-email-body-in.html

对于纯HTML页面作为邮件:

http://www.aspdotnet-suresh.com/2012/09/how-to-send-html-page-as-email-body-in.html

对于DataLists:

http://www.dreamincode.net/forums/topic/269410-send-datalist-value-within-contact-page/

希望它有所帮助。