Yii2: Как показать меньше строк во всех строках Gridview? - PullRequest
1 голос
/ 25 марта 2019

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

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

An example of the table

1 Ответ

1 голос
/ 26 марта 2019

Отображение текста на основе количества указанных строк. Предполагается, что текст в БД с
Сохранен.тоже \ 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))." ...";
    },
],

Отображение текста на основе ширины элемента.max-width

[
    '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>';
        },
    ],
...