2015-03-01 13 views
2

Я хочу добавить событие клика по моей сгенерированной диаграмме. У меня есть код ниже:Добавить функцию javascript в Dotnet Highchart

Highcharts chart = new Highcharts("chart"); 
chart.InitChart(new DotNet.Highcharts.Options.Chart { DefaultSeriesType = ChartTypes.Bar, Height = 500 }) 

    .SetTitle(new Title { Text = "Nombre de resultat par mois" }) 
    // .SetSubtitle(new Subtitle { Text = "Accounting" }) 
    .SetXAxis(new XAxis { Categories = new[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" } }) 
    .SetYAxis(new YAxis { Title = new YAxisTitle { Text = "Nombre de resultats" } }) 
    .SetTooltip(new Tooltip 
    { 
     Enabled = true, 
     Formatter = @"function() { return '<b>'+ this.series.name +'</b><br/>'+ this.x +': '+ this.y; }" 
    }) 
    .SetPlotOptions(new PlotOptions 
    { 
     Line = new PlotOptionsLine 
     { 
      Point = new PlotOptionsLinePoint { Events = new PlotOptionsLinePointEvents { Click = "ChartClickEvent" } }, 
      DataLabels = new PlotOptionsLineDataLabels 
      { 
       Enabled = true 
      }, 
      EnableMouseTracking = false 
     } 
    }) 
    .SetSeries(new Series { Name = "MySeries", Data = new Data(new object[] { 29.9, 71.5, 106.4, 129.2, 144.0, 148.5, 216.4, 194.1, 95.6, 54.4, 55, 66 }) }) 
    .AddJavascripFunction("ChartClickEvent", @"alert('yyyy'); "); 

Все хорошо работает, кроме как от события щелчка ChartClickEvent. Когда я нажимаю на диаграмму, он просто не дает результата - вместо того, чтобы показывать alert('yyyy').

ответ

0

Вам все равно необходимо зарегистрировать яваскрипт функции в InitChart, как это:

.InitChart(new DotNet.Highcharts.Options.Chart { 
    DefaultSeriesType = ChartTypes.Bar, 
    Height = 500, 
    Events = new ChartEvents { Click = "ChartClickEvent" } 
}) 
1

Вы можете сделать это, например (основное предупреждение):

Highcharts chart = new Highcharts("chart") 
    .SetPlotOptions(new PlotOptions 
    { 
     Series = new PlotOptionsSeries 
     { 
      Point = new PlotOptionsSeriesPoint 
      { 
       Events = new PlotOptionsSeriesPointEvents { Click = "ChartClickEvent" } 
      } 
     } 
    }) 
    .AddJavascripFunction("ChartClickEvent", @"alert(this.series.name);", new string[] { "event" }); 
Смежные вопросы