2013-02-18 3 views
2

Я добавил фильтр удаленных настроек по умолчанию для столбца «hiddenFlag», однако он не активен при первой загрузке. Когда я нажимаю меню заголовка столбца, фильтр кажется активным, однако записи теперь подходят. Я должен деактивировать и активировать его снова.Экстренная фильтрация фильтра фильтра по умолчанию при загрузке

filter seems to be active, however it is not!

как я могу настроить его, чтобы быть активным в течение первой загрузки также?

Ext.define('Ext.migration.CommentGrid', { 
    extend: 'Ext.grid.Panel', 
    alias: 'widget.commentgrid',    
    xtype: 'grid', 
    initComponent: function(){ 
     filePath = ""; 
     this.filters = { 
       ftype: 'filters', 
       encode: false, // json encode the filter query 
       local: false, //only filter locally 
       filters: [{ 
        type: 'numeric', 
        dataIndex: 'id' 
       }, { 
        type: 'boolean', 
        dataIndex: 'publishableFlag' 
       }, { 
        type: 'boolean', 
        dataIndex: 'hiddenFlag', 
        value:0, 
        active:true 
       } 
       ] 
      };   
     Ext.apply(this, { 
      iconCls: 'icon-grid', 
      features: [this.filters], 
      selType: 'rowmodel', 
      columns: [ 
       { 
        text: 'ID', 
        hideable: false, 
        dataIndex: 'id' 
       }, 
       { 
        xtype: 'checkcolumn', 
        text: 'Yayınlandı mı?', 
        dataIndex: 'publishableFlag' 
       }, 
       { 
        xtype: 'checkcolumn', 
        text: 'Gizle', 
        dataIndex: 'hiddenFlag', 
        filter: { 
         value:0, 
         active:true 
        } 
       } 
      ] 
     }); 
     this.callParent(); 
    }, 
    listeners:{ 
     'afterrender': function(a,b,c){ 
      //Ext.getCmp() 
      console.log("after render", this); 

     } 
    }, 
    bbar: Ext.create('Ext.PagingToolbar', { 
     store: commentStore, 
     displayInfo: true 
    }) 
}); 

ответ

2

Убедитесь, что фильтры созданы в afterrender случае, например .:

listeners:{ 
    'afterrender': function(grid){ 
     grid.filters.createFilters(); 
    } 
}, 

Если не справиться с этим вы также можете программно установить фильтры (а не только с помощью конфигурации). Как описано в this answer.

+0

Я думал, что попробую это, так или иначе, он работает сейчас, спасибо. ExtJs - замечательный инструмент, однако иногда найти то, что вам нужно, занимает много времени, а его документация не является удовлетворительной и удобной для пользователя. – efirat

Смежные вопросы