首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自定义yii2网格视图筛选行?

如何自定义yii2网格视图筛选行?
EN

Stack Overflow用户
提问于 2021-07-20 08:01:20
回答 1查看 235关注 0票数 0
代码语言:javascript
复制
                <?=
                    GridView::widget([
                        'dataProvider' => $dataProvider,
                        'filterModel' => $searchModel,                            
                        'tableOptions' => ['class' => 'table custom-table-view table-striped table-bordered'],
                        'columns' => [
                            ['class' => 'yii\grid\SerialColumn'],
                            [
                                'label' => 'User name',
                                'attribute' => 'name',
                                'filterInputOptions' => [
                                    'class' => 'form-control custom-form-control pr-5',
                                    'placeholder' => 'Search...',
                                   
                                ],
                                
                            ],
                        ],
                    ])
                    ?>

这是我正在使用的代码,使用这个代码我可以添加类,这就是输出。

代码语言:javascript
复制
<table class="table custom-table-view table-striped table-bordered">
    <thead>
      <tr id="w0-filters" class="filters">
        <td>&nbsp;</td>
        <td><input type="text" id="search-name" class="form-control custom-form-control pr-5" name="Search[name]" placeholder="Search..."></td>
     </tr>

但我想要的是

代码语言:javascript
复制
<tr id="w0-filters" class="filters">
  <td>&nbsp;</td>
   <td>
    <div class"my_class">
    <input type="text" id="search-name" class="form-control custom-form-control pr-5" name="Search[name]" placeholder="Search..."><i class="fa fa-user"></i>
  </div>
</td>

如何添加my_class div外部输入字段。?

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 13:57:16

问题是:你为什么要这么做?在我看来,这听起来像是在寻找GridView afterHeader函数。

如果确实需要这样的内容,则必须扩展GridView类并覆盖renderFilters()。

代码语言:javascript
复制
<?php

namespace app\common\override\yii2;

class GridView extends \kartik\grid\GridView
{
    /**
     * @inheritdoc
     */
    public function renderFilters()
    {
        /* Just send the Original Filter for demonstration */
        return parent::renderFilters();
    }
}

您将发现原始的renderFilters函数只返回一个字符串:

代码语言:javascript
复制
return Html::tag('tr', implode('', $cells), $this->filterRowOptions);

更改字符串的最佳策略可能是更改renderFilterCell()函数,更简单的方法可能是

代码语言:javascript
复制
$cells[] = Html::tag('div',$column->renderFilterCell(),['class'=>'my_class']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68451479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档