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
我有一个网格链接到启用了远程排序的远程商店。
当我第一次单击网格的 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