EXTJS-图表刷新,重绘-如何更新图表
EXTJS - chart refresh, redraw - How to update a chart
所以我在面板中有一个图表。该面板包含两个选项卡。第一个选项卡包含图表。第二个选项卡包含一个小表单,我正在使用它来筛选图表中的数据。
我的过滤表单非常简单:它包含不同的时间段,如"7天"、"30天"等,一旦选择,它就会将用户选择(使用ajax)发送到我为图表生成数据的地方。
这太棒了。。。但是我该如何更新图表?!用户可以选择他们想要的任何选项(我知道脚本正在获取数据并更改查询),但图表永远不会更改。我想我应该使用重绘或刷新。
我的想法是:在这里将重绘/刷新添加到我的表单处理程序中,看起来像这个
xtype: 'radiofield',
name: 'timespan',
id: 'radio3',
inputValue: 30,
boxLabel: '30 days',
handler: function(checkbox, checked) {
if (checked ) {
console.log(checkbox.inputValue);
**HERE**
}
}
问题:如何更新用户操作的EXTJS图表
我想通了!以下是我所做的:
这是我的一个单选按钮的处理程序(来自上面)。如果选中该按钮,则我会重新加载图表的存储。我没有传递硬编码的数据,而是创建了一个名为filteredData的函数。此函数使用ajax为该图表生成特定格式的数据。我将检查的值(变量名"value")作为参数发送,以便函数使用。
handler: function(checkbox, checked) {
if (checked ) { //refreshes the chart with new data
var chart = this.ownerCt.ownerCt.ownerCt.getComponent('dataTab').getComponent('graph');
var chartCmp = chart.getComponent('chartCmp'); //actual chart (used to redraw)
var value = checkbox.inputValue; //checked value
chart.store.loadData(filteredData(value));
chartCmp.redraw();
}}
商店刷新后,我会重新绘制图表!
store.load
是一个非常重要的部分,我没有意识到我需要它。
足够简单;)
在ExtJS 3.4.0上,
Ext.getCmp('chartCmp').refresh();
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 如何在视图模型contet更新更新上调用Jquery函数
- 发布后的应用程序在几分钟后停止更新更新面板
- JSON对象中的数组属性通过foreach更新-更新所有键
- 为什么我可以't更新更新我的JavaScript对象属性值