我在代码隐藏文件中完全动态生成图表并将图像保存为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表格单元格时,不会呈现任何内容。没有显示错误。如何显示图像?请帮忙。
答案 0 :(得分:1)
保存到Web应用程序中的Image文件夹,如果您没有图像文件夹,请创建
Chart1.SaveImage(Server.MapPath("~/Image/MyChartImage.jpg"));
然后
imageVar.ImageUrl = "~/Image/MyChartImage.jpg";
像<{1}}这样的图片网址不起作用,您需要提供C:\folder1\....
Absolute URL
或相对网址,例如http://localhost:3458/Image/MyChartImage.jpg
答案 1 :(得分:1)
为了扩展Damith的答案,网站上的路径是相对于您网站的根目录的。这是你看到tilda〜
时所提到的 Server.MapPath("~/")
将始终从代码隐藏中获取您当前所在网站的根文件夹。从那里你需要创建文件夹并保存文件。然后,如果将文件保存在名为images的文件夹中,则可以通过相对语法&#34; /images/filename.ext"来引用保存的文件。而在HTML中。为什么?因为&#34; /&#34;在html中指向您网站的根目录。
您也可以使用Uri对象创建文件的相对路径,只要将它们保存在您的网站根目录中。见MakeRelativeUri