簡體   English   中英

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')刷新()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM