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?

27
demandé sur ankitr 2014-02-10 14:52:28

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'=> "",

Lien Ref

Lien Ref

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',
                                    ]);
                            },
                        ]
                    ],
                ],
            ]); ?>
35
répondu Sajjad Dehghani 2018-01-20 10:18:25

Got it.By définir la propriété de mise en page,nous pouvons y parvenir.

'layout'=>"{summary}\n{items}\n{pager}"
9
répondu Dency G B 2014-02-10 11:35:30

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}"

6
répondu Ajey 2014-05-24 18:02:41

Définissez le paremeter summaryText sur chaîne vide:

array(
    'summaryText' => '',
    'dataProvider' => $model->search(),
...
1
répondu tinybyte 2015-02-27 17:43:45
[
    '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'
]
0
répondu Ziya Vakhobov 2017-12-29 11:40:24