Ext JS 3-禁用单击网格列标题时的排序。

| 在列中启用排序后,单击标题会自动对该列进行排序。我想禁止基于单击列标题的排序,但保留通过标题菜单进行的排序。换句话说,对列进行排序的唯一方法是进入标题菜单。有什么想法吗?     
已邀请:
        
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;
        }
    }
}});
    
        
{
  xtype: \'gridcolumn\',
  menuDisabled: true,
  width: \'75%\'
}
    
        我最终根据以下文章构建了自己的上下文菜单。 我如何为extjs网格创建上下文菜单     
        在Ext 6中: 覆盖
Ext.grid.column.Column
以在方法
onTitleElClick
上设置
sortOnClick
属性 我并使用新的配置ѭ5进行控制。 设置
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]);
    }
});  
    
        http://forums.ext.net/showthread.php?12608-CLOSED-How-to-disable-sorting-by-click-the-header-of-column-in-GridPanel     

要回复问题请先登录注册