Yii2 在 GridView 分页中禁用 pjax

Posted

技术标签:

【中文标题】Yii2 在 GridView 分页中禁用 pjax【英文标题】:Yii2 disable pjax in GridView pagination 【发布时间】:2017-05-19 06:53:19 【问题描述】:

如何为 gridview 的分页部分禁用 pjax?除了分页之外,其他一切都可以与 pjax 一起使用。这可能吗?

这是因为我想在更改页面时发送分配的 POST 数据。会话不是一个选项。

我的网格视图:

    echo GridView::widget
    ([
        'id' => 'list_of_products',
        'dataProvider' => $products,
        'filterModel' => $productProvider,
        'filterSelector' => 'select[name="per-page"]',
        'summary' => '<div class="summary">Showing <b>' . $products->getTotalCount() . '</b> products</div>',
        'columns' =>
            [
                ....
            ],
        'pjax' => true,
        'responsive' => true,
        'responsiveWrap' => false,
        'pjaxSettings' => ['options' => [
            'id' => 'kv-pjax-container',
            'enablePushState' => false,
            'options' => ['class' => 'row col-lg-6']
        ]],
        'panel' => [
            'heading' => '<h3 class="panel-title"> Search result</h3>',
            'headingOptions' => ['class' => 'panel-heading product-container'],
            'beforeOptions' => ['class' => 'kv-panel-before'],
        ],
        'export' => [
            'label' => 'Page',
            'fontAwesome' => true,
        ],
        'toolbar' => [
            ['content' =>
                ''
            ],
        ],
        'toolbar' => [
            '<div class="form-group pull-right">
                <button onclick="addToList()" type="button" id="clear-filters" class="btn btn-primary">
                    <i class="fa fa-mail-forward"></i> Add to feed
                </button>
            </div>'
        ]
    ]);

?>

【问题讨论】:

【参考方案1】:

您可以通过向该链接添加 data-pjax="0" 属性来禁用容器内特定链接的 pjax。

在您的网格中只需设置选项“寻呼机”:

echo GridView::widget
([
    'id' => 'list_of_products',
    ...
    'pager' => [
        'linkOptions'=> ['data-pjax' => '0']
    ],
]);

文档: LinkPager

【讨论】:

当我使用 bootstrap4 时它会中断。 'pager' =&gt;[ 'linkOptions'=&gt; ['data-pjax' =&gt; '0'], 'class' =&gt; \yii\bootstrap4\LinkPager::class, ], 知道如何解决这个问题吗?

以上是关于Yii2 在 GridView 分页中禁用 pjax的主要内容,如果未能解决你的问题,请参考以下文章

在 Yii gridview 分页中保留复选框值

C# 分页中 CodeBehind 的 GridView 不起作用

如何在 Yii2 GridView 中启用和禁用排序?

Yii2 GridView Triger仅在点击时过滤

Yii2 重定向到上一页

如何在 kendogrid 上禁用分页