yii2表格外的GridView搜索字段

时间:2015-11-11 15:47:23

标签: php gridview yii2

我正在使用Yii2 Framework和GridView通过SearchModel,DataProvider和网格视图的过滤器来显示数据。我还使用Pjax来允许使用Ajax进行分页和排序。到目前为止工作正常。

现在我想设置一个不在表格标题中的搜索字段。在最后一个columsn中,只有2个人看起来不太好。所以现在这有点棘手。我如何操纵网格的后期数据?有一个简单的解决方案吗?是否有任何示例或想法如何设置?

3 个答案:

答案 0 :(得分:2)

例如,我只有一个字段用于过滤。它是一个带有两个隐藏输入和日历小部件的日期范围。

在视图中:

<div class="col-md-4 col-md-offset-8">
            <?php echo $this->render('_filter', [
                'model' => $filterModel
            ]); ?>
        </div>
        <div class="col-md-12">
            <?php Pjax::begin(['id' => 'order-statistics']); ?>
            <?php echo GridView::widget([
                'dataProvider'   => $dataProvider,
                'filterSelector' => '#filter-form .js-date-value',
                'showFooter'     => true,
                'columns'        => [ 

在_filter.php

$this->registerAssetBundle(DateRangePickerAsset::className());

<?php echo Html::beginTag('div', ['id' => 'filter-form']); ?>
    <div class="input-group">
        <span class="input-group-addon js-date-calendar" title="<?php echo Yii::t('statistics', 'Select date'); ?>"
              role="button" data-max-date="<?php echo date('Y-m-d', strtotime('+1 day')); ?>">
            <?php echo Html::icon('calendar', ['tag' => 'i']); ?>
        </span>
        <?php echo Html::activeTextInput($model, 'from', [
            'id'       => 'js-date-from',
            'class'    => 'form-control js-date-from js-date-value',
            'readonly' => true
        ]); ?>
        <span class="input-group-addon js-date-remove" title="<?php echo Yii::t('statistics', 'Clear fields'); ?>"
              role="button">
            <?php echo Html::icon('remove', ['tag' => 'i']); ?>
        </span>
        <?php echo Html::activeTextInput($model, 'to', [
            'id'       => 'js-date-to',
            'class'    => 'form-control js-date-to js-date-value',
            'readonly' => true
        ]); ?>
    </div>
<?php echo Html::endTag('div');

答案 1 :(得分:2)

我所做的是将_search.php添加到网格视图所在的网页中,并使用$searchModel GridView来实现这一点。

例如,使用Gii CRUD中自动生成的视图文件,取消注释此行中的回显

<?php // echo $this->render('_search', ['model' => $searchModel]); ?>

这是在gridview之外获取搜索表单的最简单方法。 这在here

中有解释

答案 2 :(得分:0)

我不知道我们是否需要相同但是在网格视图之前放置搜索字段,您添加&#39; filterPosition&#39; =&GT; gridview属性中的标题&#39;