Yii CGridView呈现新页面而不是AJAX

时间:2014-07-16 10:03:20

标签: php ajax yii

在我网站的索引页面中,我有浮动的div-block,里面有CGridView。

我需要使用sort,filter,paging等选项,但只能通过更新这个div而不刷新整个页面。

数据呈现应该是,我只是更新网格内容 - 所有<a>都有href,即将用户发送到指定视图。

这是网格的视图:(这是我的views.users.usersGrid.php的唯一内容)

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $model->search(),
    'filter' => $model,
    'ajaxUrl' => 'modules/subcntrl/usersGrid',
    'ajaxUpdate' => 'users-grid',
    'columns' => array(
        array(
            'name' => 'name',
            'type' => 'raw',
            'value' => 'CHtml::encode($data->name)'
        ),
        array(
            'class'=>'CButtonColumn',
        ),
    ),
));

从views.users.users.php调用它:<?php $this->actionUsersGrid(); ?>

控制器:

public function actionUsers() {
    $this->renderPartial('users');
}

public function actionUsersGrid() {
    if(!Yii::app()->request->isAjaxRequest) die('Url should be requested via ajax only');
    $model = new Users();
    $this->renderPartial('usersGrid',array(
        'model' => $model,
    ));
}

非常感谢任何帮助

2 个答案:

答案 0 :(得分:0)

请使用renderPartial方法中的第三个和第四个参数,

$this->renderPartial('users',array(),false,true);

它将在第四个参数

中解决您的问题(设置processOutput=true

答案 1 :(得分:0)

请使用renderPartial方法中的第三个和第四个参数,如下所示,

$this->renderPartial('users',array(),false,true);

它将在第四个参数

中解决您的问题(设置processOutput=true

这在我的代码中不起作用。我在ma控制器中使用这样的

$this->renderPartial('_searchQuote', array('model' => $model, 'month' => $month, 'user' => $user), false, $processOutput=false );