1

我有一个三列的 Gridview。Query列是PostgreSQL TEXT类型,在本例中有 9 行。

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

表格示例

4

1 回答 1

1

根据指定的行数显示文本。 假设 DB 中的文本
已保存。太\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>';
        },
    ],
于 2019-03-26T03:54:57.470 回答