我有一个饼图如下
var donut = false,
panel1 = Ext.create('widget.panel', {
width: 500,
height: 350,
title: 'Semester Trends',
renderTo: Ext.getBody(),
layout: 'fit',
items: {
xtype: 'chart',
id: 'chartCmp',
animate: true,
store: store,
shadow: true,
legend: {
position: 'right'
},
insetPadding: 60,
theme: 'Base:gradients',
series: [{
type: 'pie',
field: 'sales',
showInLegend: true,
donut: donut,
tips: {
trackMouse: true,
width: 140,
height: 28,
renderer: function(storeItem, item) {
//calculate percentage.
var total = 0;
store.each(function(rec) {
total += rec.get('sales');
});
this.setTitle(storeItem.get('month') + ': ' + Math.round(storeItem.get('sales') / total * 100) + '%');
}
},
highlight: {
segment: {
margin: 20
}
},
label: {
field: 'month',
display: 'rotate',
contrast: true,
font: '18px Arial'
}
}]
}
});
这个饼图效果很好。然而有一个问题。
当我单击提交按钮为饼图生成数据时,饼图就生成了。
第一次点击按钮。我得到了 5 个值,所以饼上有 5 个饼和 5 个标签。第二次点击,我只得到 2 个值,所以有 2 个饼图,但我没有得到 2 个标签,而是看到 5 个标签。
问题是,我在第二次点击时没有的那 3 个标签应该被删除。我该怎么做?
我什至使用下面的代码来刷新图表,但它仍然不起作用。
store.load(function(){
chart.redraw();
});
谁能帮我刷新我的图表?我相信这些标签以某种方式缓存,因为第二次单击只有 2 个数据值和 2 个名称与之关联。
更新:
Ext.define('PieC'.{
extend: 'Ext.data.Model',
fields:['month', 'sales']
});
var store = Ext.create('Ext.data.Store',{
model:'PieC',
autoLoad:true,
proxy:{
type:ajax,
url:'',
reader:{
type: 'xml',
record: 'record'
}
}
});
更新商店
store.proxy.url ='url here ',
store.load(function(){
chart.redraw();
})
谢谢