在Dotnet Highchart中添加javascript函数

时间:2015-03-01 10:16:31

标签: javascript jquery asp.net asp.net-mvc dotnethighcharts

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

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

2 个答案:

答案 0 :(得分: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" });

答案 1 :(得分:0)

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

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