如何在yii2 GridView中启用ajax更新?
Ex:GridView GET方法
`http://localhost/borderland/web/item/index?ItemSearch[code]=&ItemSearch[name]=&ItemSearch[price]=&ItemSearch[availability]=&ItemSearch[itemCategory_id]=2&sort=price
` 我需要使用ajax更新而不是使用GET方法。如何在Yii2 GridView中启用它?
答案 0 :(得分:23)
您可以使用下面的PJax
小部件:
<?php \yii\widgets\Pjax::begin(); ?>
<?= GridView::widget([
// ... configuration here
]);
?>
<?php \yii\widgets\Pjax::end(); ?>
建议您查看Yii2
的官方维基:Yii 2.0: How to use GridView with AJAX
如果网址因使用Ajax
的{{1}}次请求而更改
正如PJax
的官方文件所说:
Pjax仅处理其begin()和end()调用之间的内容,称为窗口小部件的主体内容。默认情况下,正文内容中的任何链接点击或表单提交(对于具有data-pjax属性的表单)都将触发AJAX请求。在响应AJAX请求时,Pjax会将更新的正文内容(基于AJAX请求)发送给客户端,客户端将使用新内容替换旧内容。 然后将使用pushState 更新浏览器的URL。整个过程不需要重新加载布局或资源(js,css)。
您可以停用Yii2
(使用pushState
请求更新URL
),如下所示:
Ajax
我的意思是:
enablePushState => FALSE
如何使操作按钮与\yii\widgets\Pjax::begin(
[
'enablePushState'=>FALSE
]
);
正如PJax
的官方Wiki所说:
如果您仔细检查呈现的
Yii2
,则会看到链接确实包含HTML
属性HTML5
。这意味着,如果您不希望data-pjax="0"
处理您的链接,则需要向其添加此PJax
属性。
如何更新我的GridView
HTML5