如何在yii2 GridView中启用ajax更新?

时间:2014-12-13 19:34:27

标签: ajax gridview yii2

如何在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中启用它?

1 个答案:

答案 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