Любая система содержит большое количество данных. Зачастую, несет польза не сколько фактические цифры, сколько отношение между ними: разница или пропорция. Человек, читая обычные цифры, затрудняется извлечь из них эти полезные сведения. На помощь приходят диаграммы.

Компонент as.chart основан на http://www.chartjs.org/docs/#scales-linear-scale и возможностях as.js и as.sys.js. Реализация функционала, основанного на данном компоненте диаграмм, достаточно выполнить три вещи:

  1. Сделать html контейнер для диаграмм
  2. Написать серверную часть
  3. Написать скрипт обновления диаграммы

 

HTML -контейнер объявляется просто:

<canvas id="myChart" width="400" height="400"></canvas>

дополнительно объявляется кнопка которая запускает перерисовку:

<button class='chLoad'> RELOAD </button>

 

Серверная часть генерирует данные и выдает структуру JSON которую принимает компонент chart. Структура состоит из labels и datasets. В labels передается массив надписей по оси Х, в datasets передается массив массивов данных. То есть первые элементы из массивов данных будут соответствовать первому столбцу диаграммы.

public ActionResult GetBasicChart()
{
 var random = new Random();
 var i = 1;
 return Json(new
 {
  result = true,
  labels = items.Select(x => {
   return "#" + i++;
  }),
  datasets = new[] { 
   new {
    backgroundColor = "rgba(0, 220, 0, 0.5)",
    label = "GetBasicChart",
    data = System.Linq.Enumerable.Range(1,15).Select(x => 310000 + random.Next(9999) * 10).ToArray()
   },
   new{
    backgroundColor = "rgba(220, 100, 0, 0.5)",
    label = "GetBasicChart-2",
    data = System.Linq.Enumerable.Range(1,15).Select(x => 280000 + random.Next(9999) * 10).ToArray()
   }
  }
 }, JsonRequestBehavior.AllowGet);
}

 

Скрипт для обновления диаграммы состоит из серверного урл, jQuery селектора для контейнера, и параметров диаграммы (столбчатая, линейная итд).

 $(".chLoad").click(function(e) {
        e.preventDefault();
        as.chart.loadChart({
         url: '@Url.Action("GetBasicChart", "Charts")',
            cont: $("#myChart"),
            chartParams: {
                type: 'bar'
            }
        })
    });

Теперь, по нажатию кнопки RELOAD, из сервера придут новые сгенерированные данные и отобразятся на диаграмме.

 

 

as.chart.js

 

Руслан Раянов

Recent Posts

Сайт под бизнес как часть общей системы функционирования предприятия

Сайт - это не просто текст и картинки о компании. Современный сайт - это программа,…

8 часов ago

Создание площадки аренды: ключевые шаги и рекомендации

В современном мире аренда становится все более популярным способом получения доступа к различным услугам и…

16 часов ago

Дифференцируйте подход

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

1 день ago

Что нужно убрать?

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

4 дня ago

В гору или под гору

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

1 неделя ago

Опросы клиентов – ключевой инструмент для бизнеса

http://falcon.web-automation.ru/ - платформа создания бизнес-приложений в виде личных кабинетов

1 неделя ago