0

xml ファイルから入力データをロードしました。次に、ユーザーがドロップダウンから値を選択します。選択した値を使用してチャートをリロードします。ユーザーがオプションを再選択するたびに、グラフが再読み込みされます。これはextjs 4です。

新しく選択した値を使用してグラフの新しいプロキシ URL をリロードし、新しい選択を反映するようにグラフを更新するにはどうすればよいですか? ありがとうございました

Ext.define('Column',{
            extend: 'Ext.data.Model',
            fields: [

                     'data1','Data2']
        });

var store = Ext.create('Ext.data.Store', {
            model: 'Column',
            autoLoad: true,
            proxy: {
                type: 'ajax',
                url:'/data.xml',
                reader:{
                    type:'xml',
                    record: 'result'
                }
            }
        });
var store2 = Ext.create('Ext.data.Store', {
            model: 'Column',
            autoLoad: true,
            proxy: {
                type: 'ajax',
                url:'/data2.xml?selectvalue=',
                reader:{
                    type:'xml',
                    record: 'result'
                }
            }
        });

var mychart = Ext.create('Ext.chart.Chart', {

        width: 400,
        height: 200,
        renderTo: 'ChartsDiv',
        store: store2,
        axes: [{
            type: 'gauge',
            position: 'gauge',
            minimum: 0,
            maximum: 100,
            steps: 10,
            margin: 20
        }], 
        series: [{
            type: 'gauge',
            field: 'data2',
            donut: 40,
            colorSet: ['#843525', '#ddd']
        }]
    });

var simpleCombo = Ext.create('Ext.form.field.ComboBox', {
            store: store,
            displayField: 'data1',
            valueField: 'data1' ,
            width: 250,
            labelWidth: 120,
            fieldLabel: 'select a value',
            renderTo: 'simpleCombo',
            queryMode: 'local',
            typeAhead: true,
            listeners:{
            change: function(combo,records){
                var selectedValue= simpleCombo.getValue();
                Ext.Msg.alert(selectedValue);   
            }
        });
4

1 に答える 1

1

あなたの質問を正しく理解できればstore2、コンボボックスに加えられた変更に基づいて URL を変更したいですか?

change: function(combo, records){
    var selectedValue = combo.getValue();
    store2.proxy.url = "/data2.xml?selectvalue=" + selectedValue;

    // Load the store with a callback function to redraw the chart
    store2.load(function(records, operation, success){
        if(success){
            chart.redraw();
        }
    });
}
于 2012-08-28T00:15:15.200 に答える