两个ajax动作和一个容器

时间:2015-05-12 14:46:57

标签: gridview yii2 pjax

我有以下问题:我需要使用一个pjax容器来执行两个不同的操作。

确切地说,其中一个用于在表单提交后重新加载gridview。 第二个需要用模型用户想要编辑的数据填写表格。 即使在第一种情况下脚本正常工作,第二种情况也会导致填写正确的形式,并且还会替换gridview以形成。

有任何建议如何解决这个问题?

我的代码如下:

GRIDVIEW

<?= GridView::widget([

                            'dataProvider' => $dataProvider2,
                            'filterModel' => $searchModel2,
                            'filterPosition' => '',
                            'summary' => "<div class=\"summary\">Razem wniosków: {totalCount} <span id='wnioski-suma'></span></div>",
                            'layout' => '{pager}{items}{summary}',
                            'columns' => [
                                ['class' => 'yii\grid\SerialColumn'],
                                'nr_wniosku',
                                //'kwota',
                                [
                                'attribute' => 'kwota',
                                'value' => function($model) {
                                    return Yii::$app->formatter->asCurrency($model->kwota, "PLN");
                                }
                                ],
                                ['class' => 'yii\grid\ActionColumn',
                                    'buttons' => [
                                    'usunwniosek' => function ($url, $model) {
                                        return Html::a('<span class="glyphicon glyphicon-trash"></span>', $url, [
                                        'title' => Yii::t('yii', 'Delete'),
                                        //'data-confirm' => 'Czy na pewno usunąć ten rekord?',
                                        'class'=>'btn btn-default btn-xs btn-szeroki',
                                        ]);

                                    },
                                    'edytujwniosek' => function ($url, $model) {
                                        return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url, [
                                        'title' => Yii::t('yii', 'Update'),
                                        'class'=>'btn btn-default btn-xs btn-szeroki gv-btn-edit',
                                        ]);
                                    }
                                ],
                                'template' => '{edytujwniosek} {usunwniosek}',
                                'visible' => $btns,
                    ],
                            ],
                        ]); ?>

用于创建新记录的js:

$pjaxjs = '
   $("document").ready(function(){ 
        $("#new_wniosek").on("pjax:end", function() {
            console.log("pjax on new_wniosek end");
            $.pjax.reload({container:"#wnioski-lista"});  //Reload GridView
        });
    });
    ';

    $this->registerJs($pjaxjs, $this::POS_READY);

用于编辑记录的js:

$("document").ready(function(){ 

    $(document).on("click", "a.gv-btn-edit", function(event) {

        $.pjax.reload({container:"#new_wniosek"});  //Reload GridView
  });
    });

有任何建议吗?

0 个答案:

没有答案