Yii2:如何在Gridview的所有行上显示更少的行?

时间:2019-03-25 17:43:17

标签: php gridview yii2 yii2-grid

我有一个包含三列的Gridview。 查询列是 PostgreSQL TEXT 类型,在此示例中有9行。

我只想显示所有行的前4行,否则我的表太大了。

An example of the table

1 个答案:

答案 0 :(得分:1)

根据指定的行数显示文本。 假设该文本已在
数据库中保存。也是\ n

您可以根据必要的分隔符进行操作。... <br><p> ...

// Attribute name: text
[
    'attribute' => 'text',
    'format' => 'html',
    'value' => function ($model) {
         $array= array_chunk(explode('<br>', nl2br($model->text)),4);
         return implode("<br>",$array[0]);
    },
],

根据指定字符数显示文本

[
    'attribute' => 'text',
    'value' => function ($model) {
        // without breaking the word
        return mb_substr($model->text,0,strpos($model->text, ' ', 400));
       // by breaking the word
        return mb_substr($model->text, 0, 400, mb_detect_encoding($model->text))." ...";
    },
],

根据元素宽度显示文本。最大宽度

[
    'contentOptions' => ['style' => 'text-overflow: ellipsis; white-space: nowrap; max-width: 25vw; overflow: hidden;'],
    'attribute' => 'text',
    'value' => function ($model) {
        return $model->text;
    },
],

显示基于高度的文本

注意:请根据您的字体和要求更改高度。

 [
        'format' => 'raw',
        'attribute' => 'text',
        'value' => function ($model) {
            return '<div style="line-height: 1.2em; height: 4.8em; overflow: hidden;">'.\yii\helpers\HtmlPurifier::process($model->text).'</div>';
        },
    ],