Yii2: Как показать меньше строк во всех строках Gridview?

У меня есть Gridview с тремя столбцами. Столбец Query относится к типу PostgreSQL TEXT и в этом примере содержит 9 строк.

Я хотел бы показать только первые 4 строки для всех строк, иначе моя таблица будет слишком большой.

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>';
        },
    ],
Другие вопросы по тегам