[英]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')刷新()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.