Highsoft.Highcharts .NET包装器v11.4.6.3静默丢弃ChartEvents.Load字符串处理器
问题解答
API变更说明
从Highsoft.Highcharts v11.x的中间版本开始,官方调整了事件处理器的赋值逻辑:原直接传入字符串形式JavaScript函数的方式被废弃,转而要求使用JsFunction类型包装需要执行的JS代码。这一变更目的是更严谨地区分普通字符串内容与可执行JavaScript逻辑,避免潜在的解析歧义或注入风险。
新版本注册图表加载事件的推荐方式
将原字符串函数替换为JsFunction实例即可解决问题,修改后的代码示例如下:
var highcharts = new Highcharts { ID = "myChart", Chart = new Chart { Events = new ChartEvents { // 使用JsFunction包装原字符串函数 Load = new JsFunction("function(e) { myInitFunction(e); }") } }, // ... series, axes, etc. }; var renderer = new HighchartsRenderer(highcharts); string html = renderer.RenderHtml();
补充说明
- 该变更适用于ChartEvents下的所有事件属性(如Click、Redraw等),并非仅针对Load事件。
- 直接传入字符串时,新版本会将其视为普通文本值,不会解析为JavaScript函数,这就是你观察到
events.load属性缺失的原因。
内容的提问来源于stack exchange,提问作者user32576671
相关产品推荐
相关产品推荐

