YII2 在 gridview 中添加 colspan header

YII2 add colspan in gridview header

如何在gridview的header中添加colspan

通常 header 看起来像这样...

<table class="table">
        <thead>
            <tr>
              <th>Header1</th>
              <th>Header2</th>
              <th>Header3</th>
              <th>Header4</th>
              <th>HeaderA1</th>
              <th>HeaderA2</th>
              <th>HeaderA3</th>
              <th>HeaderB1</th>
              <th>HeaderB2</th>
              <th>HeaderB3</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>body1</td>
                <td>body2</td>
                <td>body3</td>
                <td>body4</td>
                <td>body5</td>
                <td>body6</td>
                <td>body7</td>
                <td>body8</td>
                <td>body9</td>
                <td>body10</td>
            </tr>
        </tbody>
    </table>

我想让它看起来像这样...

<table class="table">
        <thead>
            <tr>
              <th rowspan=2>Header1</th>
              <th rowspan=2>Header2</th>
              <th rowspan=2>Header3</th>
              <th rowspan=2>Header4</th>
                <th colspan=3>Header A</th>
                <th colspan=3>Header B</th>
            </tr>
            <tr>

              <th>A1</th>
              <th>A2</th>
              <th>A3</th>
              <th>B1</th>
              <th>B2</th>
              <th>B3</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>body1</td>
                <td>body2</td>
                <td>body3</td>
                <td>body4</td>
                <td>body5</td>
                <td>body6</td>
                <td>body7</td>
                <td>body8</td>
                <td>body9</td>
                <td>body10</td>
            </tr>
        </tbody>
    </table>

如果不扩展和重写网格视图小部件,这是不可能的。 看一下 Kartik GridView. If you take a look at the demo 您会发现它具有您需要的功能。

要在 table 的 header 中添加 colspan,您应该将属性 colspan 插入列的 headerOptions

'headerOptions' => [
    'colspan' => '2',
]

对于下一列,您应该将其 header 隐藏为:

'headerOptions' => [
    'style' => 'display: none;',
]