如何文本换行 - DataGridView Yii2 框架

How to Text Wrap - DataGridView Yii2 framework

我一直试图在互联网上找到答案,但我什么都找不到。我是网络开发的新手,所以我很难弄明白。

问题: 当我为任何值设置最大宽度时,文本超出单元格。我需要找到一种方法来包装它。是否可以通过小部件属性来做到这一点?谢谢回答

  <?php
     echo GridView::widget([
         'dataProvider' => $provider,
         'options' => ['style' => 'max-height:30px;',
                                    'max-width:10px;',
                      ],
         'columns' => [
             ['class' => 'yii\grid\SerialColumn',
                 'contentOptions'=>['style'=>'width: 30px;']],
             //subject
             [
                 'attribute' => 'subject',
                 'format' => 'text',

                 'label' => 'Subject',
                 'contentOptions'=>[
                     'style'=>
                         ['width: 10px;',],

                 ]
             ],
             //body
             [
                 'attribute' => 'body',
                 'format' => 'text',
                 'label' => 'Body',
                 'contentOptions'=>['style'=> 'max-width: 100px;', 'height: 100px']
             ],
             ['class' => 'yii\grid\ActionColumn',
                 'controller'=>null,
                 'header'=>'Action',
                 'headerOptions' => ['width' => '70'],
             ],
         ],
         'tableOptions' =>['class' => 'table table-striped table-bordered'],
     ]);
?>

您的 style 声明是错误的。 Yii2 使用 cssStyleFromArray 生成 html style 标签属性。正确的格式是每个 属性:

的键值对数组
'contentOptions' => ['style' => ['max-width' => '100px;', 'height' => '100px']]

话虽如此,最好在样式表中创建一个新的 css 规则并在列中添加一个 class:

 'contentOptions' => ['class' => 'text-wrap']    

这对我来说非常有效:

[‘attribute’=>‘whatever’, ‘contentOptions’ => [‘style’ =>‘white-space:pre-line;’],],

found here!