2

我想在我生成的图表上添加一个点击事件。我有以下代码:

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').

4

2 回答 2

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" });
于 2015-05-19T18:17:37.923 回答
0

您仍然需要在 InitChart 中注册 javascript 函数,如下所示:

.InitChart(new DotNet.Highcharts.Options.Chart { 
    DefaultSeriesType = ChartTypes.Bar, 
    Height = 500,
    Events = new ChartEvents { Click = "ChartClickEvent" }
})
于 2015-03-24T10:41:47.663 回答