Как мне управлять детализацией Highcharts с несколькими URL-адресами Json?

#javascript #c# #json

#javascript #c# #json

Вопрос:

Я пытаюсь создать highcharts столбца с 4 уровнями детализации, а также с 4 URL-адресами в формате Json.

итак, фактически при загрузке моей диаграммы будут показаны первые данные URL-адреса в формате json с данными:

 [
    {
        "New_Students": "84",
        "NSYEAR": "2014",
        "NSterm": null,
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    },
    {
        "New_Students": "1892",
        "NSYEAR": "2015",
        "NSterm": null,
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    },
    {
        "New_Students": "2107",
        "NSYEAR": "2016",
        "NSterm": null,
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    },
    {
        "New_Students": "1119",
        "NSYEAR": "2017",
        "NSterm": null,
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    },
    {
        "New_Students": "2090",
        "NSYEAR": "2018",
        "NSterm": null,
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    }
]
  

итак, при нажатии на столбец с конкретным годом, например, 2014 Год со значением 84 New_Students, он должен отображать детализацию для моего 2-го URL-адреса в формате Json с параметром «2014», который является годом, когда пользователь нажал

 [
    {
        "New_Students": "618",
        "NSYEAR": null,
        "NSterm": "1401",
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    },
    {
        "New_Students": "149",
        "NSYEAR": null,
        "NSterm": "1402",
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    },
    {
        "New_Students": "1",
        "NSYEAR": null,
        "NSterm": "1403",
        "NSCareer": null,
        "NSProgDescr": null,
        "NSStudent": null
    }
]
  

здесь будет показан учебный семестр под «2014» годом, который является «1401» «1402» «1403» термином NSTerm.

вот мой код для Javascript. но при нажатии на столбец ничего не происходит, детализация не работает : (

 <script>
     var strCampus = "<%=MyProperty%>";
    var OnClickYearVal;
    var Year = [];

    $(function () {
        $.getJSON('http://localhost:37590/get_NSData/'   strCampus , function (jsonData) { 
            const data = jsonData
            console.log(data);

let categories = [],
  series = [],
  i,
  j;

for (i = 0; i < data.length; i  ) {
    categories[i] = data[i].NSYEAR
        //  '-'   [parseFloat(data[i].NSYEAR)   1];
  Year = [data[i].NSYEAR]
  series.push({
      name: [ data[i].NSYEAR]   ' School Year',
      //data: [ data[i].New_Students],
      data: [{

          y:  data[i].New_Students,
          drilldown: true
      }]
  });

  for (j = 0; j < i; j  ) {
    series[i].data.unshift(null);
  }
}

Highcharts.chart('YearNS', {
       chart: {
         width: 1150,
         height: 450,
         type: 'column',
          events: {
              drilldown: function (e) {
                  if (!e.seriesOptions) {
                      var chart = this;

                          $.get('http://localhost:37590/get_NSDataTerm/'   e.point.categories   '/'   2018, function (jsonData) {

                              this.addSeriesAsDrilldown(e.point,jsonData);
                          });

                  }
              }

       }
    },

    title: {
        text: 'Number of New Students for '   Year   'SY'
    },
    subtitle: {
        text: 'Click the columns to view the breakdown by Term. Click again to view by Program. Updated as of Yesterday 11:59PM'
    },
    credits: {
        enabled: false
    },
    xAxis: {
        min: 0,
        max: categories.length - 1,
    crosshair: false,
        categories: categories

             },
     legend: {
            enabled: true,
            align: 'center',
            layout: 'horizontal',
            verticalAlign: 'top',

            floating: false,
        borderWidth: 1,
        backgroundColor: ((Highcharts.theme amp;amp; Highcharts.theme.legendBackgroundColor) || '#FFFFFF'),
        shadow: true
        },
      plotOptions: {
          series: {

            borderWidth: 2,
           pointWidth: 100,
            dataLabels: {
                inside: true,
                enabled: true,
                format: '{point.y:,.0f}',
                style: {
                    textShadow: false,
                    textOutline: false,
                    color: 'black'
                },
            }
          },

           column: {
               events: {

               }
              },
    },
    series: series,
      drilldown: {
        series: []
    }
        });
        });
        });
</script>
  

это моя проблема почти 2 недели, и я всего лишь новичок в highcharts и json URL.

Комментарии:

1. Вам необходимо передать соответствующую последовательность данных в ваш drilldown объект. Смотрите пример здесь: jsfiddle.net/gh/get/jquery/1.7.2/highslide-software / … . В настоящее время ваш drilldown содержит один пустой series ключ.

2. привет, Владимир, я новичок в highcharts, и меня смущает то, как я буду кодировать новый URL json при детализации и передавать эти данные в этой детализации, зависит от того, на какой столбец нажал пользователь