ASP.NET Chart control с пустыми данными - PullRequest
0 голосов
/ 12 апреля 2010

Я использую элемент управления 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)

Я полагаю, что это из-за атрибута "ImageLocation" объекта Chart, поскольку он не создает изображения с пустыми данными, поэтому не может найти это местоположение.

Это изображение, которое я хочу избежать:

альтернативный текст http://img532.imageshack.us/img532/6215/chartt.png

Вопрос : Есть ли способ определить, когда Диаграмма получает пустые данные?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2010

На самом деле, я использую ObjectDataSource, и, наконец, я сделал следующее:

ObjectDataSource имеет событие Selected. Я использовал метод, который фиксирует эти события, чтобы присвоить свойству Visible свойства диаграммы значение false, когда ReturnValue объекта ObjectDataSourceStatusEventArgs имеет 0 элементов, и присвоить свойству Visible свойства Label значение 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;
        }
    }
}
0 голосов
/ 14 апреля 2010

Вы можете проверить следующее:

  1. Проверьте, является ли источник данных диаграммы нулевым.
  2. Проверьте, являются ли используемые таблицы источника данных пустыми (имеют 0 строк).
  3. Проверьте, возвращает ли запрос SQL какой-либо результат.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...