我正在使用Yii2 Framework和GridView通过SearchModel,DataProvider和网格视图的过滤器来显示数据。我还使用Pjax来允许使用Ajax进行分页和排序。到目前为止工作正常。
现在我想设置一个不在表格标题中的搜索字段。在最后一个columsn中,只有2个人看起来不太好。所以现在这有点棘手。我如何操纵网格的后期数据?有一个简单的解决方案吗?是否有任何示例或想法如何设置?
答案 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;