带有空数据的ASP.NET Chart控件

时间:2010-04-12 15:25:15

标签: asp.net charts

我正在使用ASP.NET Chart控件,它从数据库中获取数据。有时,这些数据是空的,我找不到任何方式来显示一些文字或类似的而不是空白的屏幕。没有允许我这样做的属性。

此外,我认为由于空数据,每次我尝试显示没有数据的图表时都会出现异常:

16.48.27 ERROR: System.Web.HttpException: File does not exist.
   at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
   at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
   at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

我认为这是因为Chart对象上的“ImageLocation”属性,因为它不会创建任何包含空数据的图像,因此无法找到该位置。

这是我想避免的图像:

alt text http://img532.imageshack.us/img532/6215/chartt.png

问题:有没有办法检测Chart何时收到空数据?

2 个答案:

答案 0 :(得分:0)

您可以查看以下内容:

  1. 检查图表的数据源是否为空。
  2. 检查所使用的数据源表是否为空(有0行)。
  3. 检查SQL查询是否返回任何结果。

答案 1 :(得分:0)

实际上,我正在使用ObjectDataSource,最后我所做的是以下内容:

ObjectDataSource有一个名为Selected的事件。当ObjectDataSourceStatusEventArgs的ReturnValue有0个元素时,我使用捕获这些事件的方法将Visible的图表属性设置为false,并将Label的Visible属性设置为true,表示缺少数据,如下所示:

protected void RcrBufferSizeODS_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
    if (((List<RcrBufferSize>)e.ReturnValue).Count == 0)
        {
            RcrBufferChart.Visible = false;
            EmptyDataLabel.Visible = true;
        }
        else
        {
            RcrBufferChart.Visible = true;
            EmptyDataLabel.Visible = false;
        }
    }
}