首页 > 解决方案 > Yii2 : 使用 kartik\gridview 在表格顶部添加空行

问题描述

我正在尝试使用yii2-kartik\gridview在表格顶部插入一个空行,以便我可以向每一列添加自定义组件。

我希望打印结果如下:

在此处输入图像描述 到目前为止,我只设法通过添加以下内容来插入这一行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 实现的过滤器。我想知道一种插入一行的方法,以便我可以自由编辑它(如果您有指向包含此答案的文档的链接,请在答案中发布,因为我还没有找到它)。

标签: gridviewyii2kartik-v

解决方案


您可以使用 which 的beforeRow选项GridView关闭

function ($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>";
    }

},

请记住添加或减少<td>列以匹配网格视图中的列数。


推荐阅读