Pjax::begin(['id'=>'countries']);
GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        'id','name','content'
    ]
]);
Pjax::end();

定义好之后就可以绑定事件到具体的按钮上调用pjax的方法了。比如想更新刷新页面

$.pjax.reload({container:"#countries"});

如果想在reload时给服务器传参数可以这样

$.pjax.reload({container:"#countries",data: form.serialize()}); 

form表单的ajax提交也可以这样调用

$.pjax.submit(event,"#countries");

在实际项目中我们可能还会需要对ajax请求的的各个参数和事件做处理,这里讲几个认为比较常用的地方

var container = $("#countries");//容器 container.on('pjax:beforeSend',function(args){
    ajax请求之前调用,返回false中断ajax请求
})
container.on('pjax:error',function(args){
    ajax请求失败之后调用
})
container.on('pjax:success',function(args){
    ajax请求成功之后调用
})

还有一些其他的事件可以通过查看jquery.pjax.js源码来了解。
有什么不对的地方希望大家更正,互相学习

上一篇:Yii2学习笔记十:Yii::$app 属性整理

下一篇:Yii2学习笔记十二:Yii2 ActiveForm用法总结