//更改store的fields 、 axes的fields 和 chart的series
var storeFields = ['time'];
var axesFields = [];
var series = [];
for (var i = 0; i < rtus.hiddenValue.split(',').length; i++) {
storeFields.push('s' + i);
axesFields.push('s' + i);
series.push({
type : 'line',
highlight: false,
xField : 'time',
yField : 's' + i,
tips: {
trackMouse: true,
width: 65,
height: 40,
renderer: function(storeItem, item) {
var d = new Date();
d.setTime(storeItem.get('time'));
this.setTitle(Ext.Date.format(d, 'd日H时'));
this.update(storeItem.get('s' + i) + 'm');
}
},
style: {
fill: '#38B8BF',
stroke: '#38B8BF',
'stroke-width': 3
},
markerConfig: {
type: 'circle',
size: 4,
radius: 4,
'stroke-width': 0,
fill: '#38B8BF',
stroke: '#38B8BF'
}
});
}
var chart = mainPanel.down('chart');//chart
chart.getStore().fields = storeFields;
chart.axes.items[0].fields = axesFields;
chart.series = new Ext.util.MixedCollection(false, function(a) { return a.seriesId || (a.seriesId = Ext.id(null, 'ext-chart-series-')); });
if (series) {
chart.series.addAll(series);
}
//加载数据
chart.getStore().load({
params : {
rtuIds : rtus.hiddenValue.replace(/rtu_/g, ''),
beginTime : beginTime.getValue(),
endTime : endTime.getValue()
}
});
/*主要是这块:
chart.series = new Ext.util.MixedCollection(false, function(a) { return a.seriesId || (a.seriesId = Ext.id(null, 'ext-chart-series-')); });
if (series) {
chart.series.addAll(series);
}
刚开始用chart.series = series;
console里边查看chart的series里的items中老是Object类型 而不是所需要的constructor,
然后查看源码,发现是使用上边的MixedCollection*/