使标题可选

Make Title Selectable

我有以下代码,我想在其中将标题设置为可选。由于它是 header,因此正在添加 .x-selectable class。

代码如下

Ext.create('Ext.grid.Panel', {
    renderTo: document.body,
    store: userStore,
    width: 400,
    height: 200,
    title: 'Application Users',
    columns: [
        {
            text: 'Name',
            width: 100,
            sortable: false,
            hideable: false,
            dataIndex: 'name'
        },
        {
            text: 'Email Address',
            width: 150,
            dataIndex: 'email',
            hidden: true
        },
        {
            text: 'Phone Number',
            flex: 1,
            dataIndex: 'phone'
        }
    ]
});

这个问题有解决办法吗?

您可以使用 selectable()

selectable( ) : Ext.Element
Enable text selection for this element (normalized across browsers)

您需要获取网格标题 header 元素并需要调用此函数。

像这样:

<yourGrid>.getHeader().el.selectable();

可以在 afterrender 网格监听器中完成:

listeners: {
    afterrender: function(grid){
        grid.down('header').getHeader().selectable();
    },
},

对于 EXTJS 3.3.1 我们需要使用 removeAllListeners() 移除 extjs 默认应用的 selectStart 侦听器:

listeners: {
    afterrender: function(panel){
        panel.header.removeAllListeners();
    }
}