如何将图表图像添加到 HtmlTable

本文关键字:添加 HtmlTable 图像 | 更新日期: 2023-09-27 18:31:25

我正在代码隐藏文件中完全动态地生成图表并将图像保存为 jpeg 格式。

Chart Chart1 = new Chart();
Chart1.DataSource = ds.Tables[0];
Chart1.DataBind();
Chart1.Series.Add(new Series());
Chart1.Series[0].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
Chart1.Series[0].XValueMember = "bloodType";
Chart1.Series[0].YValueMembers = "Total";
Chart1.ChartAreas.Add(new ChartArea());
Chart1.ChartAreas[0].Area3DStyle.Enable3D = true;
Chart1.ImageType = System.Web.UI.DataVisualization.Charting.ChartImageType.Jpeg;

Chart1.SaveImage("C:''MyChartImage.jpg", ChartImageFormat.Jpeg);

HtmlTable tbProductImage = new HtmlTable();
HtmlTableRow trImageRow = new HtmlTableRow();

HtmlTableCell tdImageCell = new HtmlTableCell();
//Get generaqted image.
System.Web.UI.WebControls.Image imageVar = new System.Web.UI.WebControls.Image();
imageVar .Visible = true;
imageVar .ImageUrl = "C:''MyChartImage.jpg";

tdImageCell.Controls.Add(imageVar );
trImageRow.Cells.Add(tdImageCell);
tbProductImage.Rows.Add(trImageRow);
this.Controls.Add(tbProductImage);

图表图像在 C:'' 中成功生成驱动器但是当我尝试将其放入HTMl表单元格时,没有任何渲染。未显示任何错误。如何显示图像?请帮忙。

如何将图表图像添加到 HtmlTable

保存到Web应用程序中的图像文件夹,如果没有图像文件夹,请创建它

Chart1.SaveImage(Server.MapPath("~/Image/MyChartImage.jpg"));

然后

imageVar.ImageUrl = "~/Image/MyChartImage.jpg";

C:'folder1'....这样的图像URL将不起作用,您需要提供Absolute URL,例如http://localhost:3458/Image/MyChartImage.jpg或相对URL,例如~/Image/MyChartImage.jpg

为了扩展Damith的答案,网站上的路径是相对于您网站的根目录的。这就是你看到蒂尔达时所指的~

Server.MapPath("~/")将始终从代码隐藏中获取您当前所在网站的根文件夹。从那里您需要创建文件夹并保存文件。然后,如果您将文件保存在名为images的文件夹中,则可以在html中通过相关语法"/images/filename.ext"引用已保存的文件。为什么?因为"/"在 html 中指向您网站的根目录。

您还可以使用 Uri 对象创建文件的相对路径,只要将它们保存在网站根目录中的某个地方即可。参见 MakeRelativeUri