首页 > 解决方案 > ExtJS 4.2 网格视图配置 enableTextSelection

问题描述

我有一个包含不同列并启用了文本选择的网格:

viewConfig: {
    markDirty : false,
    enableTextSelection: true
},

一些列显示像字符串这样的纯数据,但其他列显示格式化数字:

header : '<span style="color:#C85E00;font-weight:bold;">COUNT</span>',
dataIndex : 'count',
itemId : '',
style : 'text-align:center;',
flex : 0.25,
align : 'right',
renderer : function (v, params, data, rowIndex, colIndex){
        return Ext.util.Format.number(v,'0.000 /i');
    }

在没有渲染器的列中,文本选择效果很好,但是当我尝试选择具有渲染器的列的文本时,会出现奇怪的行为。我需要单击至少 3-4 次才能选择所有文本,但是在没有渲染器的列中,双击一切正常。

我是否需要在带有渲染器的列中添加更多内容才能正确选择文本?

标签: extjsextjs4.2

解决方案


这似乎是您的渲染器放入数字的点的“问题”,而不是渲染器本身,当您双击它以选择单词时的默认行为,因为您在文本中有一个点,它'只会选择您双击的“单词”(在您的情况下,您的数字直到第一个点)

我认为您可以尝试使用 css 类来改变这种行为:user-select:all

像这样:

renderer : function (value, metaData){
        metaData.tdCls += 'YourCssClassWithUserSelectAll'
        return Ext.util.Format.number(v,'0.000 /i');
}

推荐阅读