如何在控制器内添加ExtJS4图表系列的监听器?

时间:2012-03-06 07:00:29

标签: charts controller extjs4 listener webtop

我想知道如何将图表系列的itemmouseup监听器添加到控制器中?

我的控制器的init方法如下:

init: function() {
    this.control({
        'candidateDistribution > treepanel' : {
            itemclick: this.treeStoreItemClickHandler
        },
        '#candidateDistributionButton' : {
            click: this.candidateDistributionButton_ClickHandler
        },
        'competitorAnalysis #slaWiseEmprDistriGrid series': {
            itemmouseup: this.sLA_ItemMouseUpEventHandler
        }
    });
},

在这种情况下,itemmouseup的{​​{1}}事件处理程序无法正常工作,但其余事情的事件处理程序工作正常。

我尝试将组件查询更改为organizationAnalysis #sLAWiseEmprDistriGrid seriescompetitorAnalysis > #slaWiseEmprDistriGrid series但不起作用。

我不得不将这个competitorAnalysis > #slaWiseEmprDistriGrid[series]事件处理程序添加到图表系列的代码中,该代码正常工作,但我认为它打破了MVC模式。

我的图表代码如下:

itemmouseup

所以我想知道为什么这个xtype: 'chart', itemId: 'slaWiseEmprDistriGrid', store: 'SLAWiseCompetitorDistribution', flex: 2, animate: true, legend: { position: 'right' }, insetPadding: 25, series: [{ type: 'pie', field: 'empCount', showInLegend: true, listeners: { 'itemmouseup': function(item) { var record = item.storeItem; var slaWiseEmpListStore = Ext.data.StoreManager.lookup('SLAEmployerList'); slaWiseEmpListStore.proxy.extraParams['paramFirstDimensionValue']= record.get('name'); serviceLineWiseEmpListStore.load(); } } }] // end of series configuration 事件处理程序在控制器中不起作用?

同样在将来我想将此应用程序转换为Web桌面,如应用程序,但我无法在extjs文档站点上找到信息/文档/教程。我在哪里可以获得有关开发Web桌面应用程序的教程/文档?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以在控制器中分两步设置此事件。

  1. 将监听器添加到图表渲染事件
  2. 在此听众中设置您的系列活动。
  3. 关于桌面应用程序 - 我只建议查看此示例:http://dev.sencha.com/deploy/ext-4.0.7-gpl/examples/desktop/desktop.html