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

本文关键字:空白 加载 显示 控件 NET 第一个 ASP 第一次 | 更新日期: 2023-09-27 18:33:10

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

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

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

关于如何在第一次传递时填充图形的任何想法?

下面是生成图表并将其添加到页面的代码(包含此代码的例程被调用 4 次)。 请注意,"points"对象包含名称-值对的集合,其中名称是要在 X 轴上显示的标签,值是数字 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);

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

同样的问题在这里。图表图像将写入文件系统,但这发生在页面呈现后大约 20 毫秒。如果在呈现 Chart 控件后将代码置于睡眠状态 20 毫秒,则不会发生此问题 - 将有时间将图像写入磁盘。

这样做的过程是什么(呈现页面的延迟)? 我断断续续地遇到同样的问题。 在开发中,图形(此处只有一个)不会显示 10 次中的 9 次。 在生产中,图形确实显示大约 7 次(满分 10 次)。 这是我想修复的十分之三。