He creado un gráfico circular usando el ejemplo del gráfico circular en el sitio web sencha ExtJS, quería agregar un evento de clic a cada sector Pie para poder manejar el contexto datos en esa porción. Pude agregar un oyente de clic al pastel, pero no estoy seguro de cómo obtener los datos en el sector.ExtJS Cómo agregar un evento de clic a las piezas del gráfico circular
A continuación se muestra el código ExtJS.
Ext.onReady(function(){
var store = Ext.create('Ext.data.JsonStore', {
fields: ['name', 'data1', 'data2', 'data3', 'data4', 'data5'],
data: [{
'name': 'January',
'data1': 10
}, {
'name': 'February',
'data1': 7
}, {
'name': 'March',
'data1': 5
}, {
'name': 'April',
'data1': 2
}, {
'name': 'May',
'data1': 27
}]
});
Ext.create('Ext.chart.Chart', {
renderTo: Ext.getBody(),
width: 800,
height: 600,
animate: true,
store: store,
theme: 'Base:gradients',
legend: { // Pie Chart Legend Position
position: 'right'
},
series: [{
type: 'pie',
field: 'data1',
showInLegend: true,
tips: {
trackMouse: true,
width: 140,
height: 28,
renderer: function(storeItem, item){
//calculate and display percentage on hover
var total = 0;
store.each(function(rec){
total += rec.get('data1');
});
this.setTitle(storeItem.get('name') + ': ' + Math.round(storeItem.get('data1')/total * 100) + '%');
}
},
highlight: {
segment: {
margin: 5
}
},
label: {
field: 'name',
display: 'rotate',
contrast: true,
font: '18px Arial'
},
listeners: {//This Doesnt Work :(
itemclick: function(o){
alert('clicked at : ' + o);
}
}
}],
listeners: { //This Event handler works but I am not sure how to figure how which slice i have clicked ..................................
click: {
element: store, //bind to the underlying el property on the panel
fn: function(o, a){
alert('clicked' + o + a + this);
}
}
}
});
});
Amablemente ayuda.
Saludos, Lalit
¡tienes toda la razón! He entendido mal la pregunta. – sra
Muchas gracias Abdel, funcionó, sin embargo, no pude entender por qué itemclick no funcionó y el evento itemmousedown funciona. ¿Tiene algún enlace sobre esta documentación? – Lalit
Aunque el gráfico tiene un evento itemclick. No lo veo en el código fuente de la serie. Tiene que leer más del código para responder su pregunta. Puede obtener los detalles de los eventos de la serie en: http: //dev.sencha.com/deploy/ext-4.0.0/docs/api/Ext.chart.series.Series.html –