要件:DBにクエリを実行し、データグリッドとグラフを作成し、このレポート/情報を電子メールで送信する自動化されたプロセス。
問題:埋め込み画像(グラフ)またはデータグリッドのいずれかを使用してレポートを作成できますが、一緒に作成することはできません。メールでグラフとデータグリッドの両方を取得するにはどうすればよいですか?
コード:
MailMessage m = new MailMessage();
SmtpClient smtp = new SmtpClient("smtpservername", 25);
m.From = new System.Net.Mail.MailAddress("vananthraman@abcd.com");
m.To.Add("vananthraman@abcd.com");
m.Subject = "This is a test";
AlternateView plainView = AlternateView.CreateAlternateViewFromString("This is my plain text content, viewable by those clients that don't support html", null, "text/plain");
AlternateView htmlView = AlternateView.CreateAlternateViewFromString("<img src=cid:companylogo>", null, "text/html");
System.Net.Mail.LinkedResource logo = new System.Net.Mail.LinkedResource(path);
logo.ContentId = "companylogo";
htmlView.LinkedResources.Add(logo);
m.AlternateViews.Add(plainView);
m.AlternateViews.Add(htmlView);
//some_query is defined here
using (SqlCommand cmd = new SqlCommand(some_query, connection))
{
GridView gvwBmonitor = new GridView();
SqlDataReader reader = cmd.ExecuteReader();
gvwBmonitor.DataSource = reader;
gvwBmonitor.DataBind();
m.IsBodyHtml = true;
StringBuilder sb = new StringBuilder();
HtmlTextWriter hw = new HtmlTextWriter(new StringWriter(sb));
gvwBookingmonitor.RenderControl(hw);
m.Body = m.Body + sb.ToString();
AlternateView htmlView2 = AlternateView.CreateAlternateViewFromString(sb.ToString(), null, "text/html");
m.AlternateViews.Add(htmlView2);
smtp.Send(m);
}
グラフのみが表示され、グリッドは表示されません。どうすればこれを修正できますか?