在Yii2中GridView可以使用pjax方式刷新,可以很好的提升用户体验,简化程序开发人员自己ajax刷新表格的工作复杂程度。可是有些时候,我们需要手动的触发表格刷新,或者有些链接我们在点击的时候,不希望触发pjax,这个需要怎么实现呢,接下来我们就讲下在Yii2中如何实现。
首先如果我们有链接不想触发pjax,比如一些操作按钮,直接跳转到其他页面
那么只需要在链接上加上以下标签就可以data-pjax="0"
<a class="btn btn-success" title="添加" data-pjax="0" href="create"><i class="glyphicon glyphicon-plus"></i></a>
上面就是一个添加新项目的按钮,不触发pjax的示例代码。
介绍完不触发,那么我们来介绍下如何手动触发刷新呢?举一个例子就是在全选批量删除的时候,我们需要手动刷新表格
代码也非常的简单,只要在页面的js里面加入以下代码就可以了$.pjax.reload({container:"#categoryGrid-pjax"});
这里的container是我们设置的gridview的id加上-pjax,gridview的设置如下:
<?= GridView::widget([ 'id' => 'categoryGrid', 'filterModel' => $searchModel, 'dataProvider' => $dataProvider, 'columns' => $gridColumns , ]); ?>