2017-05-18 8 views
0

グリッドパネルを作成しましたが、いくつかのカラムにフィルタリングを適用したいと思います。しかし、私はフィルタリングに関する問題に直面しています。 datecolumnオブジェクト(xtype: 'datecolumn')の作成中に、デフォルトのフィルタリングを設定することはできますか?グリッドパネルがロードされているとき、どのようにデフォルトフィルタリングオプションを適用できますか? ご意見ありがとうございます。Extjsのグリッドカラムフィルタリングの問題

+0

あなたは、フィルタのどのような種類を使用しないのドキュメントを参照してください例の修正版ですか?範囲フィルタを使用して2つの異なる値が必要な場合は、これは本当に面倒です。それ以外の場合は、['itemDefaults.value'](http://docs.sencha.com/extjs/6.2.1/classic/Ext.grid.filters.filter.Base.html#cfg-itemDefaults)を値に設定できますフィルタリングしたい – Alexander

答えて

0

これにはgridfilters pluginを使用できます。続き

Date filter

var shows = Ext.create('Ext.data.Store', { 
 
    fields: ['id','show', { 
 
      name: 'airDate', 
 
      type: 'date', 
 
      dateFormat: 'Y-m-d' 
 
    }], 
 
    data: [ 
 
     {id: 0, show: 'Battlestar Galactica', airDate: '1978-09-17'}, 
 
     {id: 1, show: 'Doctor Who', airDate: '1963-11-23'}, 
 
     {id: 2, show: 'Farscape', airDate: '1999-03-19'}, 
 
     {id: 3, show: 'Firefly', airDate: '2002-12-20'}, 
 
     {id: 4, show: 'Star Trek', airDate: '1966-09-08'}, 
 
     {id: 5, show: 'Star Wars: Christmas Special', airDate: '1978-11-17'} 
 
    ] 
 
}); 
 

 
Ext.create('Ext.grid.Panel', { 
 
    renderTo: Ext.getBody(), 
 
    title: 'Sci-Fi Television', 
 
    height: 250, 
 
    width: 375, 
 
    store: shows, 
 
    plugins: 'gridfilters', 
 
    columns: [{ 
 
     dataIndex: 'id', 
 
     text: 'ID', 
 
     width: 50 
 
    },{ 
 
     dataIndex: 'show', 
 
     text: 'Show', 
 
     flex: 1 
 
    },{ 
 
     xtype: 'datecolumn', 
 
     dataIndex: 'airDate', 
 
     text: 'Original Air Date', 
 
     width: 125, 
 
     filter: { 
 
      type: 'date', 
 
      operator: 'on', 
 
      value: {eq:new Date('1999-03-19')} // equals or ON 
 
      //value: {lt:new Date('1999-03-19')} // less then or BEFORE 
 
      //value: {gt:new Date('1999-03-19')} // greater then or AFTER 
 
      
 
     } 
 
    }] 
 
});

+0

ご協力ありがとうございます。私が望むようにうまく動作します。 – MLElyakan