Yii2:使用kartik\gridview在表的顶部添加空行
我正在尝试使用在表的顶部插入一个空行,以便可以向每列添加自定义组件 我希望打印的结果如下: 到目前为止,我只通过添加Yii2:使用kartik\gridview在表的顶部添加空行,gridview,yii2,kartik-v,Gridview,Yii2,Kartik V,我正在尝试使用在表的顶部插入一个空行,以便可以向每列添加自定义组件 我希望打印的结果如下: 到目前为止,我只通过添加filterModel插入了这一行: <?php $gridViewPesquisaPonto = GridView::widget([ 'moduleId' => 'gridview', 'dataProvider' => $pesquisaPontodataProvider, 'filterModel'
filterModel
插入了这一行:
<?php
$gridViewPesquisaPonto = GridView::widget([
'moduleId' => 'gridview',
'dataProvider' => $pesquisaPontodataProvider,
'filterModel' => true, // The table row containing the filters is configured here
'layout' => "{items}{summary}{pager}",
'captionOptions' => ['class' => 'text-wrap'],
'options' => [
'id' => 'grid-pontos-pesquisa',
],
'columns' => [
// ...
您可以使用GridView
的beforeRow
选项,该选项接受闭包
函数($model、$key、$index、$grid)
在哪里
$model
:正在呈现的当前数据模型
$key
:与当前数据模型关联的键值
$index
:由[[dataProvider]]返回的模型数组中数据模型的从零开始的索引
$grid
:GridView
对象
您可以使用$index
确定它是否位于第一行,并添加自定义行,如下所示
'beforeRow'=>function ($model, $key, $index, $grid){
if($index===0){
return "<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>";
}
},
'beforeRow'=>函数($model、$key、$index、$grid){
如果($index==0){
返回“
1.
2.
3.
4.
5.
";
}
},
请记住添加或减少
列以匹配gridview中的列数。我将使用此答案扩展穆罕默德·奥马尔·阿斯拉姆的回答。我想这将更加动态,并且不需要一直调整需要显示的列数
您可以使用GridView
的beforeRow
选项,该选项接受闭包
function ($model, $key, $index, $grid)
所以在这里,我们可以获取所有模型属性,甚至在显示之前检查它们
'beforeRow'=>function ($model){
$row = "<tr>";
//loop thru attributes
foreach($model->attributes as $key => $value){
$row .= "<td>" . $key . "</td>";
}
return $row .= "</tr>";
},
'beforeRow'=>函数($model){
$row=“”;
//循环通过属性
foreach($model->attributes as$key=>$value){
$row.=“.$key.”;
}
返回$row.=“”;
},
希望它能对您有所帮助。谢谢您的回复,当然这条建议非常有用!OP从来没有告诉我他想在这些列中添加什么,所以我只添加了数字,因为他的主要问题是如何在那里添加一行。