更新关联DataGrid的Highcharts数据连接器:同步数据与避免事件重复
解决Highcharts Dashboards数据更新与DataGrid事件重复绑定问题
问题1:更新数据连接器使DataGrid自动同步数据
不需要调用load()触发组件重新加载,直接操作数据连接器并触发数据更新事件,即可让DataGrid自动同步数据:
- 获取目标连接器实例:
const dataConnector = dashboard.dataPool.getConnector('my-data');
- 更新连接器的数据表(保证数据格式与原连接器一致):
const newDataTable = createDataTable(); // 你的行式矩阵数据 dataConnector.dataTable = newDataTable;
- 触发数据更新事件,通知绑定的DataGrid组件同步:
dataConnector.emit('dataUpdated');
这种方式不会重新初始化组件,自然避免了事件重复绑定的问题。
问题2:刷新DataGrid以获取连接器当前的数据表(无重复事件绑定)
如果需要主动刷新DataGrid,不要调用load(),而是使用组件的refresh()方法:
dataGrid.component.refresh();
该方法会基于连接器当前的数据表重新渲染组件,但不会重新绑定事件,从根源解决点击触发多次的问题。
关键说明
调用load()会重新初始化整个组件实例,导致之前绑定的事件被重复注册,这就是点击行触发两次事件的核心原因。而通过更新连接器数据并触发事件,或调用refresh()方法,都是在现有组件实例上更新数据,不会重复绑定事件。
内容的提问来源于stack exchange,提问作者Neil C. Obremski
相关产品推荐
相关产品推荐

