2016-03-29 16 views
2

リモートソートが有効になっているリモートストアにグリッドがリンクされています。ExtJS6 - ASCからDESCへのデフォルトの並べ替え方向

グリッドのヘッダーを初めてクリックすると、列の順序が昇順に設定され、2番目のクリックで降順に設定されます。

最初のクリックを特定の列の降順に移動する方法はありますか?

答えて

2

Hmm ..これを理解するにはかなりの時間がかかりました。デフォルトの方向を変更するための直接APIはないようです。

これは私が最終的に考えていることです。ストアのソーターのdefaultSortDirectionを更新する必要があります。ここで

store.getSorters().$sortable.setDefaultSortDirection('DESC'); 

Fiddle

が更新ある

あなたが列レベルでデフォルトのソート方向を適用したい場合は、列レベルでtoggleSortStateメソッドをオーバーライドすることができます。ここで

 columns: [{ 
      dataIndex: 'id', 
      text: 'ID', 
      width: 50, 
      /** 
      * Overriding this function to Change the Default Sort Order. 
      */ 
      toggleSortState: function() { 
       if (this.isSortable()) { 
        var me = this, 
         grid = me.up('tablepanel'), 
         store = grid.store, 
         sortParam = me.getSortParam(), 
         direction = undefined; 

        if(!store.getSorters().get(sortParam)) { 
         direction = 'DESC'; 
        }       
        this.sort(direction); 
       } 
      }, 
     } 

は、それが動作Fiddle

+0

おかげで、唯一の欠点は、それはすべてのフィールドのためにそれを変更することで、あなたはそれが選択されたものにのみ適用されている方法があると思いますか? – serg

+0

私の回答を更新しました。 – JChap

+0

完璧、ありがとう! – serg

関連する問題