PDA

View Full Version : How to get store record's field name?



jocatastar
19 Oct 2014, 11:47 PM
I am using ext js 4.2.2 and i am implementing stacked bar chart. When using mouse events and clicking on a stacked element i want to get the clicked record's field name.



series: [{
type: 'bar',
axis: 'bottom',
gutter: 80,
xField: 'lable0',
yField: ['lable1', 'lable2', 'lable3','lable4','lable5'],
needle: true,
stacked: true,
listeners:{
itemmousedown: function(item, evnt){
alert(item.value);
}
},


In the listener event i want to know, on which field click was happened?

scottmartin
20 Oct 2014, 6:12 AM
See if this helps:



Ext.onReady(function () {
var store = Ext.create('Ext.data.JsonStore', {
fields: ['year', 'comedy', 'action', 'drama', 'thriller'],
data: [
{year: 2005, comedy: 34000000, action: 23890000, drama: 18450000, thriller: 20060000},
{year: 2006, comedy: 56703000, action: 38900000, drama: 12650000, thriller: 21000000},
{year: 2007, comedy: 42100000, action: 50410000, drama: 25780000, thriller: 23040000},
{year: 2008, comedy: 38910000, action: 56070000, drama: 24810000, thriller: 26940000}
]
});

var panel1 = Ext.create('widget.panel', {
width: 800,
height: 400,
title: 'Stacked Bar Chart - Movies by Genre',
renderTo: Ext.getBody(),
layout: 'fit',
items: {
xtype: 'chart',
animate: true,
shadow: true,
store: store,
legend: {
position: 'right'
},
axes: [{
type: 'Numeric',
position: 'bottom',
fields: ['comedy', 'action', 'drama', 'thriller'],
title: false,
grid: true,
label: {
renderer: function(v) {
return String(v).replace(/(.)00000$/, '.$1M');
}
},
roundToDecimal: false
}, {
type: 'Category',
position: 'left',
fields: ['year'],
title: false
}],
series: [{
type: 'bar',
axis: 'bottom',
gutter: 80,
xField: 'year',
yField: ['comedy', 'action', 'drama', 'thriller'],
stacked: true,
tips: {
trackMouse: true,
width: 65,
height: 28,
renderer: function(storeItem, item) {
this.setTitle(String(item.value[1] / 1000000) + 'M');
}
},

listeners: {
itemmousedown: function(item, evnt) {
console.log(item.yField);
}
}
}]
}
});
});