是否可以在Yii2 Kartik GridView DataColumn标题中使用\ n或<br/>?

时间:2016-07-11 08:53:46

标签: php gridview yii2

我有一张包含许多colomns的桌子。它有一个很大的字符串和小数据字符串,如“平均使用时间”和“55”,

| Average usage time |
______________________
|                  55|

所以我想在几行中显示标签,比如

| Average|
|   usage|
|    time|
| _______|
|     55 |

将表格放入屏幕。问题是DataColumn忽略标签中的'\ n'符号和br标签。有没有办法做到这一点?

DataColumn示例:

[
'attribute' => 'avg_usage_time',
'label' => 'Average <br>usage time',
'vAlign'=>'middle',
'content' => function($model) {
    return number_format($model['avg_usage_time'], 0, '.', ' ');
    },
'pageSummary' => function ($summary, $data, $widget) {
    return (isset($summary) && is_numeric($summary)) ? number_format($summary, 0, '.', ' ') : 0;
    },
 ],

2 个答案:

答案 0 :(得分:1)

这是您的解决方案 请添加类型属性。

[
'attribute' => 'avg_usage_time',
'label' => 'Average <br>usage time',
'type' => 'raw'
'vAlign'=>'middle',
'content' => function($model) {
    return number_format($model['avg_usage_time'], 0, '.', ' ');
    },
'pageSummary' => function ($summary, $data, $widget) {
    return (isset($summary) && is_numeric($summary)) ? number_format($summary, 0, '.', ' ') : 0;
    },
 ],

可能会对你有所帮助。请在允许使用html的属性中添加此'type' => 'raw'

答案 1 :(得分:1)

'type' => 'raw'不起作用。请改用'encodeLabel' => false

[
'attribute' => 'avg_usage_time',
'label' => 'Average <br>usage time',
'encodeLabel' => false,
'vAlign'=>'middle',
'content' => function($model) {
    return number_format($model['avg_usage_time'], 0, '.', ' ');
    },
'pageSummary' => function ($summary, $data, $widget) {
    return (isset($summary) && is_numeric($summary)) ? number_format($summary, 0, '.', ' ') : 0;
    },
 ],