ExtJS:4.2.1中的网格过滤(升级破坏)

时间:2014-03-20 23:03:32

标签: javascript extjs grid

我有一个网格过滤设置在ExtJS 4.1.1.1中运行正常,但是当我尝试升级到4.2.1.883时,我的网格过滤器不再有效,而且我完全难以理解为什么。我想升级,因为4.2.x对我们来说明显更快。我正在使用MVC设置,并尝试以编程方式访问网格的过滤器。也许这里有人可以帮忙!这就是我所拥有的:

// The Filters
var listFilters = {
  ftype: 'filters',
  autoReload: true,
  local: false,
  encode: 'encode',
  updateBuffer: 750,
  filters: [
    { type: 'numeric', dataIndex: 'id' },
    { type: 'string', dataIndex: 'title' }
  ]
};

// The Columns
var listColumns = [
  {
    id: 'id',
    text: 'ID',
    dataIndex: 'id',
    width: 150,
    filterable: true,
    filter: { type: 'numeric' }
  },
  {
    id: 'title',
    text: 'Title',
    dataIndex: 'title',
    width: 75,
    filterable: true,
    filter: { type: 'string' }
  }
];

// The Grid
Ext.define('JP.view.asset.List', {
  extend: 'Ext.grid.Panel',
  alias: 'widget.assetlist',
  id: 'grid',
  store: 'Assets',              // referenced from another js file, per MVC
  layout: 'fit',
  features: [ listFilters ],    // filters referenced here
  columns: listColumns,         // columns referenced here
  listeners: {
    afterrender: function(grid) {
      // This works in 4.1.1, does nothing in 4.2.1
      grid.filters.createFilters();
      // ^^ Cannot call method 'createFilters' of undefined
      // :( :(
      // Can no longer reference `grid.filters` externally either, e.g.,
      // from Ext.tree
    }
  }
});

任何想法?!我完全被这里难住了。 grid.filters不能再以编程方式访问,也不再在GUI中加载(从列下拉列表中)。在4.1.x中正常工作。

当然,我已经加载了正确的路径等等......

// Load Ext.js MVC Application
Ext.Loader.setConfig({
  enabled: true,
  paths: { 'Ext.ux': 'javascript/ext-4.2.1/examples/ux' }
});

Ext.require([
  'Ext.grid.*',
  'Ext.data.*',
  'Ext.tree.*',
  'Ext.ux.*',
  'Ext.ux.grid.FiltersFeature'
]);

没有这样的运气。好像ftype: 'filters'被网格的features参数完全忽略了。

谢谢!!!

2 个答案:

答案 0 :(得分:1)

这是我们4.2环境中应用的相关代码段。

Ext.application({
    ...
    , paths: {'Ext.ux': '../[Path to ext]/src/ux/' }
    , requires: [
        'Ext.ux.grid.FiltersFeature'
    ]
    ...
});

过滤器就像魅力一样。

答案 1 :(得分:0)

路径应为resources/ux,或者如果您要使用示例目录中提供的文件,请使用此examples/ux/grid