【问题标题】:ASP.NET Chart control with empty data带有空数据的 ASP.NET 图表控件
【发布时间】:2010-04-12 15:25:15
【问题描述】:

我正在使用 ASP.NET 图表控件,它从数据库中获取数据。有时,这些数据是空的,我找不到任何方法来显示一些文本或类似内容,而不是显示空白屏幕。没有任何属性可以让我这样做。

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

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 何时接收到空数据?

【问题讨论】:

    标签: asp.net charts


    【解决方案1】:

    您可以检查以下内容:

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

    【讨论】:

      【解决方案2】:

      其实我用的是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;
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多