【问题标题】:ext js update chart pie after filterext js 过滤后更新图表饼图
【发布时间】:2012-11-11 13:32:36
【问题描述】:

我在过滤图表字段时遇到问题。
我有一个包含一些字段的图表饼图。
用户可以过滤图表饼图并选择他想查看的字段。
问题是,如果饼图有 8 个字段,而用户只选择了 6 个字段,则过滤器只过滤数据而不过滤字段。

例如,如果我有字段

{name:'Asia','data1':9, sex:'Male'},
{name:'Africa','data1':2, sex:'Male'},
{name:'Europe','data1':5, sex:'Female'},
{name:'USA','data1':3, sex:'Male'},

我想过滤亚洲、非洲和欧洲,我仍然可以看到美国名称字段(没有数据)。

代码:

storeIng.filterBy(function(record,id){ 
    var fieldName = record.get('name')
    for(var i = 0; i < fields.length; i++) {
        if (fields[i] === fieldName) 
            return true;
    }
    return false;
}); 

我也添加了屏幕截图 前 http://i45.tinypic.com/1eq74i.jpghttp://i45.tinypic.com/1z1zofq.jpg

【问题讨论】:

  • 请显示更多代码。您在什么情况下调用 filterBy 函数?

标签: extjs filter pie-chart


【解决方案1】:

由于您没有提供太多代码,请尝试此代码以供参考,看看错误在哪里。您编写的 filterBy 函数似乎没问题。如果其他人在过滤商店数据时遇到问题,这也可以帮助他们阅读本文。

    Ext.onReady(function(){

var data=[
            {name:'Asia','data1':9, sex:'Male'},
            {name:'Africa','data1':2, sex:'Male'},
            {name:'Europe','data1':5, sex:'Female'},
            {name:'USA','data1':3, sex:'Male'}
        ]

var store = Ext.create('Ext.data.JsonStore', {
fields: ['name', 'data1','sex'],
data:data
              });

              store.filterBy(function(record,id){
if(record.get('name')==="Asia")
    return true;
             })

    Ext.create('Ext.chart.Chart', {
renderTo: Ext.getBody(),
width: 500,
height: 350,
animate: true,
store: store,
theme: 'Base:gradients',
series: [{
    type: 'pie',
    angleField: 'data1',
    showInLegend: true,

    highlight: {
        segment: {
            margin: 20
        }
    },
    label: {
        field: 'name',
        display: 'rotate',
        contrast: true,
        font: '18px Arial'
    }
}]
         });

     });

【讨论】:

    猜你喜欢
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    相关资源
    最近更新 更多