ASP.NET图表控件 - 第一个图表在第一次加载页面时显示为空白

时间:2012-05-03 19:47:20

标签: c# asp.net charts

我有一个页面,它使用ASP.NET 4.0图表控件生成四个图形并显示它们。图表在页面加载的代码隐藏中创建,并添加到页面上的表格中。

我的问题是,当页面加载时,前1个或多个图形(通常只有一个,但有时候是2或3个)是空白的(用户会得到一个空白的方框,其中包含红色X的图形大小)左上角)。

刷新页面会导致所有图形正确呈现。

关于如何在第一次通过时填充图表的任何想法?

以下是生成图表并将其添加到页面的代码(包含此代码的例程被调用4次)。请注意,'points'对象包含Name-Value对的集合,其中Name是要在X轴上显示的Label,Value是数字Y轴值:

Chart graph = new Chart();
graph.Width = 800;
graph.Height = 400;
Series series = new Series();
series.Name = "Series1";
series.Palette = ChartColorPalette.Bright;
series.IsXValueIndexed = true;
for (int j = 0; j < points.Count; j++)
{
    DataPoint dataPoint = new DataPoint(j+1.0, points.GetItem(j).Value);
    dataPoint.AxisLabel = points.GetItem(j).Name.Trim();                    
    series.Points.Add(dataPoint);
}
graph.Series.Add(series);
ChartArea chartArea = new ChartArea();
chartArea.Name = "ChartArea1";
chartArea.AxisX.Interval = 1;
chartArea.AxisY.LabelStyle.Format = "###,###,###,###";
graph.ChartAreas.Add(chartArea);
graph.Titles.Add(caption);

TableRow tr = new TableRow();
TableCell td = new TableCell();
td.Width = new Unit(100.0, UnitType.Percentage);
tblGraph.Rows.Add(tr);
tr.Cells.Add(td);
td.Controls.Add(graph);

2 个答案:

答案 0 :(得分:0)

这里的问题相同。图表图像被写入文件系统,但这在页面呈现后大约20ms发生。如果你在渲染Chart控件后让代码进入休眠状态,比如20毫秒,那么问题就不会发生了 - 将有时间将图像写入磁盘。

答案 1 :(得分:0)

这样做的过程是什么(呈现页面的延迟)?我一直有同样的问题。在开发中,图形(这里只有一个)不会显示10次中的9次。在生产中,图表显示约10次中的7次。这是我想解决的10个中的3个。