2017-08-24 6 views
1

私はバッファリングされたストアを持つEXTJSグリッドを持っています。私はこのストアでremoteSort:trueを有効にしました。いくつかの列はsortable:trueとマークされています。しかし、並べ替えのために任意の列をクリックするたびに、作成されるバックエンド呼び出しには、ストアに記載されているソーター列と方向のみが含まれます。 Ex。並べ替えのためにCol2またはCol3をクリックしても、バックエンドのGETコールには、 'ソート:col1、direction:desc'が含まれています。ExtJS 5.0:グリッドremoteSortは、デフォルトのソーターのみで常にソートされます

ストア:

Ext.define('MyStore', { 
    extend: 'Ext.data.BufferedStore', 
model : 'MyModel' 

    pageSize: 200, 
    autoLoad: false, 
    leadingBufferZone: 200, 
    trailingBufferZone: 200, 
    remoteSort: true, 
    sorters: [{ 
    property: 'col1', 
    direction: 'DESC' 
    }], 

    proxy: { 
    type : 'rest', 
    format: 'json', 
    url : '/my_app/my_controller/list', 
    extraParams: { 
     someparam: '', 
     otherparam: '' 
    }, 
    reader: { 
     type: 'json', 
     rootProperty: 'data', 
     totalProperty: 'totalCount' 
    } 
    } 
}); 

グリッド:

Ext.define('MyPanel', { 
    extend: 'Ext.grid.Panel', 
    requires: [ 
    'MyStore' 
    ], 
    initComponent: function() { 
     this.store = new MyStore(); 
     this.callParent(arguments); 
    }, 
    columns: [{ 
     text: 'Col1', 
     dataIndex: 'col1', 
     width: 150, 
     sortable: true 
    },{ 
     text: 'Col3', 
     dataIndex: 'col3', 
     width: 150, 
     sortable: true 
    },{ 
     text: 'Col3', 
     dataIndex: 'col3', 
     width: 250, 
     sortable: true 
    }] 
}); 

どのように私がクリックされた任意の並べ替え可能な列でソートするために、このグリッドを有効にすることができますか?

答えて

1

simpleSortModeを明示的に設定しましたが、ドキュメントには問題の内容が記載されています。

すでに最初のソーターを設定していて、カラムクリックで並べ替えると、その後ろに2番目のソートが追加されますが、simpleSortModeがアクティブになっていると、最初のソーターだけがサーバーに送信されます。

+0

訂正ありがとうございます。私はsimpleSortModeを削除しました:trueと同じ問題がまだ表示されます。 remoteSort:trueとソーターが言及すると、カラムクリックで並べ替えるだけでソーターが使用されます。また、私はremoteSort:false(ローカルソートを有効にする)を試したところ、ソートが完全に無効になっていました。 – KavitaC

+0

解決策を提案できますか? – KavitaC

+0

[Senchaフィドルを作成しました](https://fiddle.sencha.com/#view/editor&fiddle/25t7)、原因が5.0.0の問題であることがわかりました。このバグは5.0.1で修正されていますので、フレームワークのアップグレードを考慮する必要があります。 – Alexander

関連する問題