Yii2 GridView 当前行号第一行最后一行
Yii2 GridView current row number first last row
我需要 Yii2 GridView 方面的帮助。我正在渲染 table 但我想在第一行和最后一行放置特殊图标。有没有办法知道我在哪一行?
<?= GridView::widget([
'dataProvider' => $dataProvider,
"tableOptions" => ['class' => 'table table-striped table-bordered brand-list',"style"=> ""],
/*'filterModel' => $searchModel,*/
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'class' => 'yii\grid\ActionColumn',
'template' => '{sort-up} {sort-down}',
'buttons' => [
'sort-up' => function ($url, $brand, $key) {
$url = \Yii::$app->urlManager->createUrl(["brand/sort", 'id' => $brand->id , 'dir' => 'up']);
return Html::a( "" , '#', ['data-url' => $url, 'title' => "test",
'data-title' => "sort up",
'class' => 'glyphicon glyphicon-chevron-up']);
},
'sort-down' => function ($url, $brand, $key) {
$url = \Yii::$app->urlManager->createUrl(["brand/sort", 'id' => $brand->id , 'dir' => 'down']);
return Html::a('', '#', ['data-url' => $url, 'title' => "test",
'data-title' => "sort up",
'class' => 'glyphicon glyphicon-chevron-down']);
},
],
],
[
'attribute' => 'name',
'label' => Yii::t('admin:brand', 'brand_name'),
],
],
]); ?>
所以类似 :
'buttons' => [
'sort-up' => function ($url, $brand, $key) {
if($currentRow == 1){
return "firstRow";
}
},
'sort-down' => function ($url, $brand, $key) {
if($currentRow == ROWS_COUNT){
return "lastRow";
}
},
],
感谢您的帮助。
问候
威尔
使用$dataprovider->models
构建当前页面显示的所有模型的地图,
然后您可以使用 array_search() to get current index, or just reset() and end() 获取第一项和最后一项
// map will contain all model ids in the the same order they are displayed in
$map = ArrayHelper::getColumn($dataprovider->models);
echo GridView::widget([
'dataProvider' => $dataProvider,
// ...
'columns' => [
// ...
[
'class' => 'yii\grid\ActionColumn',
'buttons' => [
'sort-up' => function ($url, $brand, $key) use ($map) {
if ($key == reset($map)){
return "firstRow";
}
},
'sort-down' => function ($url, $brand, $key) use ($map) {
if($key == end($map)){
return "lastRow";
}
},
]
]
]
])
我需要 Yii2 GridView 方面的帮助。我正在渲染 table 但我想在第一行和最后一行放置特殊图标。有没有办法知道我在哪一行?
<?= GridView::widget([
'dataProvider' => $dataProvider,
"tableOptions" => ['class' => 'table table-striped table-bordered brand-list',"style"=> ""],
/*'filterModel' => $searchModel,*/
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'class' => 'yii\grid\ActionColumn',
'template' => '{sort-up} {sort-down}',
'buttons' => [
'sort-up' => function ($url, $brand, $key) {
$url = \Yii::$app->urlManager->createUrl(["brand/sort", 'id' => $brand->id , 'dir' => 'up']);
return Html::a( "" , '#', ['data-url' => $url, 'title' => "test",
'data-title' => "sort up",
'class' => 'glyphicon glyphicon-chevron-up']);
},
'sort-down' => function ($url, $brand, $key) {
$url = \Yii::$app->urlManager->createUrl(["brand/sort", 'id' => $brand->id , 'dir' => 'down']);
return Html::a('', '#', ['data-url' => $url, 'title' => "test",
'data-title' => "sort up",
'class' => 'glyphicon glyphicon-chevron-down']);
},
],
],
[
'attribute' => 'name',
'label' => Yii::t('admin:brand', 'brand_name'),
],
],
]); ?>
所以类似 :
'buttons' => [
'sort-up' => function ($url, $brand, $key) {
if($currentRow == 1){
return "firstRow";
}
},
'sort-down' => function ($url, $brand, $key) {
if($currentRow == ROWS_COUNT){
return "lastRow";
}
},
],
感谢您的帮助。 问候 威尔
使用$dataprovider->models
构建当前页面显示的所有模型的地图,
然后您可以使用 array_search() to get current index, or just reset() and end() 获取第一项和最后一项
// map will contain all model ids in the the same order they are displayed in
$map = ArrayHelper::getColumn($dataprovider->models);
echo GridView::widget([
'dataProvider' => $dataProvider,
// ...
'columns' => [
// ...
[
'class' => 'yii\grid\ActionColumn',
'buttons' => [
'sort-up' => function ($url, $brand, $key) use ($map) {
if ($key == reset($map)){
return "firstRow";
}
},
'sort-down' => function ($url, $brand, $key) use ($map) {
if($key == end($map)){
return "lastRow";
}
},
]
]
]
])