在同一列

时间:2016-12-12 11:50:15

标签: javascript alignment extjs4.1

我有一份报告,需要以不同方式对齐列。我需要将具有值的行与数字右对齐,并将具有文本的行与左对齐。

是否存在针对此类问题的配置/功能,还是应该使用CSS?

Fiddle with the grid

1 个答案:

答案 0 :(得分:2)

您可以在列渲染器上执行所需操作,更改对齐属性并执行所需的计算:

renderer:function(val,cell){
        if(parseInt(val))
           cell.align='right';
        return val;
    }
如果您的文本只由没有任何数字的单词构成,

parse int将起作用,在您的情况下,您可以检查字符串是否只包含带有这样的正则表达式的数字:

renderer:function(val,cell){
            if(val.match(/^[0-9]+$/))
               cell.align='right';
            else
               cell.align='left';
            return val;
        }

Working fiddle here

查看手机列渲染器。

[UPDATE]

抱歉没有看过您的Ext版本,在您的情况下,您可以使用我的功能:

我还用数字中的点更新了案例。

renderer:function(val,cell){
                    if(val.match(/^[0-9]*\.?[0-9]*$/))
                       cell.style='text-align:right;';
                    else
                       cell.style='text-align:left;';
                    return val;
                }

Example with your fiddle