Ext JS 3 - отключить сортировку по щелчку заголовка столбца сетки - PullRequest
1 голос
/ 25 июня 2011

Когда в столбце включена сортировка, щелчок по заголовку автоматически сортирует по этому столбцу.Я хочу запретить сортировку по щелчку заголовка столбца, но сохранить сортировку через меню заголовка.Другими словами, единственный способ отсортировать столбец - войти в меню заголовка.Есть мысли?

Ответы [ 5 ]

1 голос
/ 08 мая 2019
{
  xtype: 'gridcolumn',
  menuDisabled: true,
  width: '75%'
}
1 голос
/ 28 июня 2011
var contextMenu = new Ext.menu.Menu({
items: [{
    id: 'sort-high-to-low',
    cls: 'xg-hmenu-sort-asc',
    text: 'Sort Ascending within Group'
},{
    id: 'sort-low-to-high',
    cls: 'xg-hmenu-sort-desc',
    text: 'Sort Descending within Group'
},'-',{
    id: 'sort-high-to-low-all',
    cls: 'xg-hmenu-sort-asc',
    text: 'Sort All Ascending'
},{
    id: 'sort-low-to-high-all',
    cls: 'xg-hmenu-sort-desc',
    text: 'Sort All Descending'
},'-',  {
    id: 'heatmap',
    cls: 'xg-hmenu-heatmap',
    text: 'Open in Heatmap'
}],
listeners: {
    scope: this,
    itemclick: function(item) {
        switch (item.id) {
        case 'sort-high-to-low':
            Ext.getCmp('backtestGrid').getStore().sort(contextMenu.columnId,'ASC');
            this.hide();
            break;
        case 'sort-low-to-high':
            Ext.getCmp('backtestGrid').getStore().sort(contextMenu.columnId,'DESC');
            this.hide();
            break;
        case 'sort-high-to-low-all':
            Ext.getCmp('backtestGrid').getStore().clearGrouping();
            Ext.getCmp('backtestGrid').getStore().sort(contextMenu.columnId,'ASC');
            this.hide();
            break;
        case 'sort-low-to-high-all':
            Ext.getCmp('backtestGrid').getStore().clearGrouping();
            Ext.getCmp('backtestGrid').getStore().sort(contextMenu.columnId,'DESC');
            this.hide();
            break;
        case 'heatmap':
            heatmapCallback(contextMenu.headerName, contextMenu.columnId);
            this.hide();
            break;
        }
    }
}});
0 голосов
/ 13 ноября 2018

В Ext 6:

Переопределить Ext.grid.column.Column, чтобы обусловить атрибут sortOnClick метода onTitleElClick

I и использовать новую конфигурацию enableSortOnClick для управления этим.

Настройка enableSortOnClick = false отключает сортировку по щелчку заголовка, но поддерживает функцию сортировки в раскрывающемся меню заголовка.

Ext.define('App.overrides.ColumnOverride', {
    override: 'Ext.grid.column.Column',

    config: {
        /** Control sortOnClick at TitleElClick event*/
        enableSortOnClick: false,
    },

    /**@Overrides*/
    onTitleElClick: function(e, t, sortOnClick) {
        return this.callParent([e, t, this.enableSortOnClick && sortOnClick]);
    }
});  
0 голосов
/ 19 августа 2011
0 голосов
/ 26 июня 2011

Я закончил создание своего собственного контекстного меню на основе следующего поста.

Как создать контекстное меню для сетки extjs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...