Yii2 Pjax GridView 操作按钮问题

2023-12-02

我正在尝试使用 Pjax 制作 Ajax GridView。除了查看、更新和删除按钮不是 AJAX 之外,一切都工作正常。代码是:

<?php yii\widgets\Pjax::begin(['id' => 'demo']); ?>
<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        'name',


        ['class' => 'yii\grid\ActionColumn'],
    ],

]); ?>
<?php yii\widgets\Pjax::end(); ?>

问题在于删除、查看和更新​​的链接具有 data-pjax=0 属性,该属性禁用 AJAX 功能。我也不知道如何设置它 data-pjax=1。


你必须像下面这样做:

对于删除操作

1-更改您的删除操作,如下所示:

public function actionDelete($id) {
    $this->findModel($id)->delete();
    if (Yii::$app->getRequest()->isAjax) {
        $dataProvider = new ActiveDataProvider([
            'query' => ModelName::find(),
            'sort' => false
        ]);
        return $this->renderPartial('index', [
                    'dataProvider' => $dataProvider
        ]);
    }
    return $this->redirect(['index']);
}

2- 在网格视图中:

['class' => 'yii\grid\ActionColumn',
        'buttons' => [
            'delete' => function ($url, $model) {
                return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [
                            'title' => Yii::t('yii', 'Delete'),
                            'data-pjax'=>'w0',
                ]);
            }
        ]
    ],

现在,它可以与Pjax.

Notes

  • 我的代码在deleteAction()可能会降低性能。你可以自己写。
  • w0通常是默认 idPJax。您可以添加一个idPJax并将其写在那里。
  • 这对于Update and View,但是你需要改变展示你的方式update and view views.
  • 强烈建议您看一下Yii2PJax的官方文档:http://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii2 Pjax GridView 操作按钮问题 的相关文章

随机推荐