我正在使用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何时收到空数据?
答案 0 :(得分:0)
您可以查看以下内容:
答案 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;
}
}
}