1

グリッドの列の 1 つにリスト フィルターを使用しています。フィルタを開くと、リストがソートされていません。

私が試したのは、そのフィルターにストアをアタッチして、ストアをソートすることです。ストアは並べ替えられていますが、フィルターには並べ替えられていないアイテムが表示されます。

これは私のビューモデルです:

Ext.define('MyApp.view.myview.TestGridModel', {    
    extend: 'Ext.app.ViewModel',
    alias: 'viewmodel.test-grid',

    stores: {
        test: {
            type: 'test'
        },
        business: {
            source: '{test}',
            sorters: {
                property: 'business',
                direction: 'ASC'
            }
        },
        other:{
            type: 'other'
        }
    }
});

そして以下は私の見解からのスニペットで、フィルター用にストアを設定します:

bind: {       
    store: '{test}'
},

plugins: 'gridfilters',

columns: [{
    text: 'Id',
    dataIndex: 'id'
}, {
    text: 'Business',
    dataIndex: 'business',
    flex: 2,
    filter: {
        type: 'list',
        store: '{business}'
        //store: '{other}'
    }
}, {
    text: 'Profile',
    dataIndex: 'profile',
    flex: 2
}, {
    text: 'Program',
    dataIndex: 'program',

fiddleも作成しました。構成ではなくストアが必要であることに注意してください。

グリッド フィルターを並べ替えるには?

ありがとうございました

4

3 に答える 3

0

以下のようにストアを変更します。これにより、ビジネス列によるデフォルトの並べ替えがグリッドになります。グリッドは「テスト」ストアにバインドされているため、ソーターをテスト ストアに追加して、グリッド データのデフォルトの並べ替えを行います。

Ext.define('MyApp.view.myview.TestGridModel', {
    extend: 'Ext.app.ViewModel',

    alias: 'viewmodel.test-grid',

    stores: {
        test: {
            type: 'test',
            sorters: [{
                property: 'business',
                direction: 'ASC'
            }]
        },
        business: {
            source: '{test}',
            sorters: [{
                property: 'business',
                direction: 'ASC'
            }]
        },
        other:{
            type: 'other'
        }
    }
});
于 2017-06-02T11:06:50.237 に答える