ExtJS6 - 更改网格列默认排序方向从ASC到DESC

时间:2016-03-29 17:46:35

标签: extjs extjs6

我有一个链接到远程商店的网格,并启用了远程排序。

当我第一次点击网格标题时,它将列顺序设置为升序,然后在第二次单击时降序。

有没有办法让第一次点击按某些列的降序排列?

1 个答案:

答案 0 :(得分:2)

嗯..花了很多时间才弄清楚这一点,似乎没有直接的API来改变默认方向。

这就是我最终想到的,你需要更新商店中的sortSortDirection。

    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