2011-12-23 3 views
0

Я, кажется, возникли проблемы с легендой ОбновлениеLegend не обновляя

При изменении данных в Stor круговых обновления диаграммы, но легенда не делает.

Но удивительно, что он обновляется один раз, когда мы перезапускаем круговую диаграмму, так как я использую параметр «Сброс» во взаимодействиях.

Я не знаю, в чем проблема, почему легенда не обновляется впервые.

Когда я использую значения жесткого кода для магазина, легенда обновлялась с самого начала. Для динамических значений только легенда не обновлялась в принципе.

Пожалуйста, обратитесь Некоторая часть моего кода,

PieChart = new Ext.chart.Chart({ 

           cls: 'pie1', 

           theme: 'Demo', 

           store: store1 
           shadow: true, 

           animate: true, 

    legend: { 
    position: 'top' 

    // dock: false 
}, 
    interactions: [ { 

        type: 'reset', 
        confirm: true 
        }], 


series: 
    [ { 

     type: 'pie', 

     renderer: function(sprite, storeItem, barAttr, m, store11) { 

      barAttr.fill = colors1[m % colors1.length]; 

      return barAttr; 

     }, 

     field: 'data1', 

     showInLegend: true, 

     highlight: false, 

     donut: 15, 

     listeners: { 

      'labelOverflow': function(label, item) { 

       item.useCallout = true; 

      } 

     }, 

     callouts: { 

      renderer: function(callout, storeItem) { 

       callout.label.setAttributes({ 

        text: storeItem.get('Horizontal') 

       }, true); 

      }, 

      filter: function() { 

       return false; 

      }, 

      box: { 

       //no config here. 

      }, 

      lines: { 

       'stroke-width': 2, 

       offsetFromViz: 10 

      }, 

      label: { 

       font: 'italic 14px Arial' 

      }, 

      styles: { 

       font: '14px Arial' 

      } 

     }, 

     label: { 

      field: 'Horizontal', 

      display: 'rotate', 

      font: '5px Arial' 

     } 

    }] 

Любые идеи?

+4

Здесь почти нулевая информация, чтобы предоставить любые ответы! Можете ли вы предоставить информацию о компоненте круговой диаграммы, формате/структуре возвращаемых данных, фрагментах кода, который делает эту конкретную часть и т. Д.? – techfoobar

ответ

0

Я получил это решается с помощью следующего кода, а данные получать сохраняются в хранилище

var hrPieChart = hrPanel.items.getAt(0); 
      hrPieChart.legend = new Ext.chart.Legend({ 
       chart: hrPieChart, 
       position: 'top', 
        dock: false 
      }); 
      var fieldNames = []; 
      hStore.each(function(rec) { 
       fieldNames.push(rec.get('data1')); 
      }); 
      hrPieChart.series.getAt(0).yField = fieldNames; 
      hrPieChart.redraw(false); 
0

Чтобы обновить легенду с диаграммой в Сенча Touch (Диаграммы v1.0.0), вам просто нужно загрузить свой магазин и затем выполните обратный вызов updateStore().

var updateLegend = function(){ 
    store.getProxy.url = 'someData.json'; // Omit if new data is from original source. 
    store.load({ 
     callback: function(records, options, success){ 
      if (success === true){ 
       var legend = chart.legend; 
       legend.view.updateStore(); 
      } 
     } 
    }); 
}