Yii2:GridView的列太宽

时间:2017-09-28 11:59:02

标签: gridview yii2 scrollbar adminlte gii

我创建了一个CRUD的 Gii 工具index.php。我还使用 AdminLTE 模板。

GridView 应该显示两列:" Phrase"和"作者"但是专栏" Phrase"有一些长文本行(大约350个字符),所以显示此列的一部分。 "作者"列根本没有显示。

没有水平滚动条(它应该对我有帮助):

enter image description here

或者问题可能是字符串数据类型:

public function rules()
{
    return [
        [['phrase'], 'required'],
        [['phrase'], 'string'],
        [['author'], 'string', 'max' => 50],
    ];
}

这是我的index.php观点:

<div class="box box-primary">
    <?php Pjax::begin(); ?>                
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            'phrase',
            'author',
        ],
    ]); ?>
    <?php Pjax::end(); ?>
</div>

3 个答案:

答案 0 :(得分:2)

您还可以使用config.linkVars = L(0-1)

contentOptions

答案 1 :(得分:1)

我将table-responsive课程添加到<div class="box box-primary">

<div class="box box-primary table-responsive">
    <?php Pjax::begin(); ?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            'frase',
            'autor',
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{update} {delete}'
            ],
        ],
    ]); ?>
    <?php Pjax::end(); ?>
</div>

答案 2 :(得分:0)

试试这个:

[
    'attribute'=>'phrase',
    'value'=>function($data){
        return strlen($data->phrase) > 100 ? Html::encode(substr($data->phrase, 0, 100)) . ". . ." : $data->phrase;
    }
]

如果字符串大小大于100,它将显示字符串中的前100个字符。

根据您所需的宽度设置值。