ASP.NET Charting - 将图表作为二进制数据返回时,MapAreas为null

时间:2011-06-20 15:21:39

标签: c# .net asp.net-mvc charts

我的目标:返回坐标和形状,以便我可以将自己的自定义悬停文本滚动到.NET Charting图像。如果我使用ASP.NET控件(它同时呈现图像标记和HTML <map>标记,这将没有问题;但是,我在MVC世界中,所以我将图表作为二进制文件返回图片。这是要点:

public virtual FileStreamResult Chart()
{
    //Set up chart
    Chart Chart1 = new Chart();
    Chart1.RenderType = RenderType.ImageTag;

    Chart1.ChartAreas.Add(new ChartArea("First"));

    //Add some lovely data
    Series s = new Series();
    s.Name = "Tasks";
    s.Points.AddXY("Task 1", 5, 8);
    s.ChartArea = "First";
    s.ChartType = SeriesChartType.RangeBar;

    //Add a tooltip - This **should** make the MapAreas collection populate.
    s.ToolTip = "Hello World";

    Chart1.Series.Add(s);

    if (Chart1.MapAreas.Count == 0)
        CryRiver(); //Always executed. :*(

    //Output image as FileStreamResult
    //...
}

问题:无论我做什么,我都无法让MapAreas集合包含任何内容。我相信这是因为在图像实际渲染之前,坐标不会被填充。

在将图像渲染为二进制文件时,如何获取图表数据的地图区域坐标?

谢谢!

1 个答案:

答案 0 :(得分:0)

找到答案;不确定它是否是最好的。

必须在填充Chart1.MapAreas之前调用Chart1.RenderControl();