我想在生成的图表上添加点击事件。我有以下代码:
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 :(得分: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" }
})