Personnaliser la vue de la grille dans yii2
Comment supprimer le résumé et le trieur pour une vue de grille particulière dans Yii2. Dans Yii1. 1, Nous pouvons le faire en définissant la propriété template. Dans yii2 comment y parvenir?
5 réponses
Pour modifier uniquement l'option summary
, vous pouvez utiliser:
'summary' => "{begin} - {end} {count} {totalCount} {page} {pageCount}",
Ensuite, si vous voulez vider summary
définir avec une valeur de chaîne vide comme:
'summary'=> "",
Et pour modifier les mises en page, vous pouvez utiliser:
'layout'=> "{summary}\n{items}\n{pager}"
Ensuite, si vous voulez vider layouts
définissez la mise en page avec une valeur de chaîne vide comme:
'layout'=> "",
Donc, pour l'échantillon, je pense que l'exemple de code ci-dessous peut être utile pour savoir comment changer et custome GridView
table dans Yii 2:
<?= \yii\grid\GridView::widget([
'id' => 'table',
'dataProvider' => $dataProvider,
'layout'=>"{sorter}\n{pager}\n{summary}\n{items}",
'summary' => "Showing {begin} - {end} of {totalCount} items",
'tableOptions' => ['class' => 'table table-bordered table-hover'],
'rowOptions' => function ($model, $key, $index, $grid) {
return [
'style' => "cursor: pointer",
'onclick' => 'location.href="'
. Yii::$app->urlManager->createUrl('test/index')
. '?id="+(this.id);',
];
},
'columns' => [
[
'class' => 'yii\grid\SerialColumn',
'contentOptions' => ['style' => 'width: 20px;', 'class' => 'text-center'],
],
[
'class' => 'yii\grid\DataColumn',
'attribute' => 'date',
'headerOptions' => ['class' => 'text-center'],
'label' => 'Date',
'contentOptions' => ['style' => 'width: 130px;', 'class' => 'text-center'],
],
'template' => '{view}',
'buttons' => [
'view' => function ($url, $model) {
return \yii\helpers\Html::a('<div class="text-center"><em data-toggle="tooltip"
data-placement="top" title="more detail"
class="fa fa-external-link-square text-warning"></em></div>',
(new yii\grid\ActionColumn())->createUrl('test/index', $model, $model['id'], 1), [
'title' => Yii::t('yii', 'view'),
'data-method' => 'post',
'data-pjax' => '0',
]);
},
]
],
],
]); ?>
Got it.By définir la propriété de mise en page,nous pouvons y parvenir.
'layout'=>"{summary}\n{items}\n{pager}"
Si vous ne voulez que des éléments de grille, utilisez 'layout'=>"{items}"
Si vous voulez seulement un résumé d'utiliser 'layout'=>"{summary}"
Si vous voulez seulement trieur utiliser 'layout'=>"{pager}"
Définissez le paremeter summaryText
sur chaîne vide:
array(
'summaryText' => '',
'dataProvider' => $model->search(),
...
[
'class' => 'yii\grid\ActionColumn',
'buttons' =>
[
'update'=>function($url,$model,$key)
{
return Html::a( "update" , $url ); //use Url::to() in order to change $url
},
'view'=>function($url,$model,$key)
{
return Html::a( "update" , $url ); //use Url::to() in order to change $url
},
'delete'=>function($url,$model,$key)
{
return Html::a( "update" , $url, [
'class' => 'btn btn-lg btn-primary',
'data' => [
'method' => 'post',
'params' => ['derp' => 'herp'], // <- extra level
],
] ); //use Url::to() in order to change $url
}
],
'template' => '<div class="column-buttons">
<span>{update}</span>
<span>{view}</span>
<span>{delete}</span>
</div>',
'header' => 'Actions'
]