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

ExtJS6 - Change Grid Column Default Sort Direction from ASC to DESC

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

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

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

嗯.. 弄明白这一点花了很多时间,似乎没有直接 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