我有一些每页过滤器和gridview。 他们放在pjax。 当我改变一些分页和排序后,使用我的每页过滤器 - 分页和排序的参数丢失。 我想保存它。怎么做? 我的代码:
<?php Pjax::begin(['id' => 'pjax']) ?>
<?= Html::dropDownList('per-page', Yii::$app->request->get('per-page') != NULL ? Yii::$app->request->get('per-page') : [10 => 10], [1 => 1, 5 => 5, 10 => 10, 25 => 25, 50 => 50, 100 => 100], [
'onchange' => '
$.pjax.reload({
url: "'.Url::to([Yii::$app->controller->action->id, 'id' => Yii::$app->request->get('id')]).'?StandartSearch%5Bdate%5D=" + $(\'#date\').val() + "&per-page=" + $(this).val(),
container: "#pjax",
});
',
'class' => 'form-control',
'id' => 'per-page'
]) ?>
<?= GridView::widget([
'id' => 'gridview',
'dataProvider' => $dataProvider,
'columns' => [
// columns
],
]); ?>
<?php Pjax::end() ?>
答案 0 :(得分:1)
每页过滤器放在pjax容器中。很明显,当pjax事件完成时,它们会丢失。
为了使它们不会丢失当前选择,您可以将每页过滤器放在pjax之外的表单中。
pjax上的和$ formSelector属性指向该过滤器表单id。
参考:http://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html# $ formSelector-detail