Yii2: GridView 的列太宽
Yii2: GridView's column is too wide
我有 index.php
由创建 CRUD 的 Gii 工具制作。我也使用 AdminLTE 模板。
它有 GridView 应该显示两列:"Phrase" 和 "Author" 但列 "Phrase" 有一些行有长文本(大约 350 个字符)因此仅 显示了此列的一部分 。 "Author" 列根本没有显示。
没有水平滚动条(应该对我有帮助):
或者问题出在 string 数据类型:
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>
试试这个:
[
'attribute'=>'phrase',
'value'=>function($data){
return strlen($data->phrase) > 100 ? Html::encode(substr($data->phrase, 0, 100)) . ". . ." : $data->phrase;
}
]
如果字符串大小大于 100,它将显示字符串的前 100 个字符。
根据您想要的宽度设置值。
我将 table-responsive
class 添加到 <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>
您也可以使用 contentOptions
:
[
'attribute' => 'phrase',
'contentOptions' => [
'style' => [
'max-width' => '600px',
'white-space' => 'normal',
],
],
],
我有 index.php
由创建 CRUD 的 Gii 工具制作。我也使用 AdminLTE 模板。
它有 GridView 应该显示两列:"Phrase" 和 "Author" 但列 "Phrase" 有一些行有长文本(大约 350 个字符)因此仅 显示了此列的一部分 。 "Author" 列根本没有显示。
没有水平滚动条(应该对我有帮助):
或者问题出在 string 数据类型:
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>
试试这个:
[
'attribute'=>'phrase',
'value'=>function($data){
return strlen($data->phrase) > 100 ? Html::encode(substr($data->phrase, 0, 100)) . ". . ." : $data->phrase;
}
]
如果字符串大小大于 100,它将显示字符串的前 100 个字符。
根据您想要的宽度设置值。
我将 table-responsive
class 添加到 <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>
您也可以使用 contentOptions
:
[
'attribute' => 'phrase',
'contentOptions' => [
'style' => [
'max-width' => '600px',
'white-space' => 'normal',
],
],
],