0

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

            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();
    }

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

4

1 回答 1

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

对于数据列表:

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

希望它有帮助。

于 2013-04-30T06:12:17.360 回答