Yii2 DataGrid разные кнопки для первой и последней строки

Мне нужно изменить порядок строк в DataGrid, поэтому я добавил две кнопки для каждой строки «Вверх» и «Вниз»:

        <?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
[
'headerOptions' => ['style' => 'width:56px'],
'class' => 'yii\grid\ActionColumn',
'template' => '{Up} {Down}',
'buttons' => [
'Up' => function($url, $model, $key) {
return Html::a('',['/admin/content/up', 'id' => $key], ['class' => 'glyphicon glyphicon-chevron-up']);
},
'Down' => function($url, $model, $key) {
return Html::a('',['/admin/content/down', 'id' => $key], ['class' => 'glyphicon glyphicon-chevron-down']);
},
]
],
'content'
]
]);
?>

Там нет нумерации страниц, все данные умещаются на одной странице. Теперь это выглядит так:

Текущий взгляд

И я хочу, чтобы это выглядело более аккуратно, как это:

Что я хочу смотреть

Поэтому мне нужно скрыть кнопки «Вверх» и «Вниз» для первого и последнего ряда соответственно. Не могу понять, как это сделать или даже как узнать номер строки из функции анонимной кнопки.

2

Решение

Попробуй это

$count = $dataProvider->getTotalCount();

после этого добавьте этот атрибут в ваш столбец действий

'visibleButtons' => [
'Up' => function ($model, $key, $index) {
return $index == 0 ? false : true;
},
'Down' => function ($model, $key, $index) use ($count) {
return $index == ($count - 1) ? false : true;
}
]
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector