ExtJS FiltersFeature不再工作

时间:2014-06-17 14:03:59

标签: javascript extjs

我不明白:(

以前工作正常。我的ExtJS Grid中的所有列都有过滤器。现在它只是抛出一个错误。我第一次点击标题箭头时得到以下堆栈:

Uncaught TypeError: object is not a function FiltersFeature.js?_dc=1403012616973:285
Ext.define.initializeFilters FiltersFeature.js?_dc=1403012616973:285
Ext.define.createFilters FiltersFeature.js?_dc=1403012616973:265
Ext.define.onMenuCreate FiltersFeature.js?_dc=1403012616973:300
fire ext-all-debug.js:9815
continueFireEvent ext-all-debug.js:11207
fireEventArgs ext-all-debug.js:11185
prototype.fireEventArgs ext-all-debug.js:41542
fireEvent ext-all-debug.js:11171
Ext.define.getMenu ext-all-debug.js:109192
Ext.define.showMenuBy ext-all-debug.js:109115
Ext.define.onHeaderTriggerClick ext-all-debug.js:109110
Ext.define.onTitleElClick ext-all-debug.js:109894
(anonymous function) VM2875:6
wrap

我在这样的方法中定义我的列:

var createColumns = function () {

    var columns = [{
        dataIndex: 'id',
        text: 'ID',
        renderer: function(val) {
            return '<b>' + val+ '</b>';
        },
        width: 80
        ,
        filter: {
            type: 'int'
        }
    }, {

        dataIndex: 'releaseId',
        text: 'Release',
        filter: {
            type: 'number'
        }
    }, {
        dataIndex: 'requires',
        text: 'Requires ',
        filter: {
            type: 'string'
        }
    }, {
        dataIndex: 'creation',
        text: 'Status Changed?',
        filter: {
            type: 'date'
        }
    }, {
        dataIndex: 'creator',
        text: 'Creator',
        filter: {
            type: 'string'
        }
    }];
    return columns;
};

不确定为什么现在突然发生这个错误。

2 个答案:

答案 0 :(得分:1)

  

尝试这种方式:

initComponent : function() {
    var filters = {
        ftype : 'filters',
        encode : false, // json encode the filter query
        local : true,
        autoReload : false
    };
    var numberFilters = {
    minValue: 0
    }
        ............
   columns : [ {
                 text : 'Id'
                 filter: { 
                    type: 'numeric',
                    fields: {
                        eq: numberFilters
                    }
                 },
              }
             ....
            ]

答案 1 :(得分:0)

好的,我知道问题所在。我正在使用类型&#39;数字&#39;在我的过滤器配置中,我应该使用numeric或int。

dataIndex: 'releaseId',
text: 'Release',
filter: {
    type: 'number'
}

相反它应该是

dataIndex: 'releaseId',
text: 'Release',
filter: {
    type: 'int'
}

现在我不再解决问题了。这只是一个错字。