Atualizar a CGridView com pesquisar ajax

E ae galera,

queria a ajuda de vc para atualizar a CGridView com o resultado de uma pesquisa.

CGridView




<?php


$this->widget('zii.widgets.grid.CGridView', array(

    'id' => 'cargo-grid',

    'dataProvider'=> $dataProvider,

    'filter'=>$model,

    'enablePagination' => 'true',

    'summaryText' => 'Página {page} de {pages}',

    'enableSorting' => 'true',

    'ajaxUpdate' => 'true' ,

    'columns' => array(

        'cargoDescricao',

        array(            

            'name'=>'tipoCargo',

            'value'=> '$data->tipoCargo',

        ),

        array(

            'class' => 'CButtonColumn',

            'template' => '{update}     {delete}',

            'deleteConfirmation' => 'Deseja remover o Cargo?',

            'deleteButtonUrl' => 'Yii::app()->createUrl("cargo/delete", array("id" => $data->id))',

        ),

    ),

));

?>



Botões na view




<div class="button_div">

            <?php

            echo CHtml::ajaxSubmitButton(

                    'Salvar',

                    CController::createUrl('cargo/index'),

                    array(

                        'dataType' => 'html',

                        'success' => "function(data, textStatus, XMLHttpRequest){try{\$('#cargo-grid').yiiGridView.update('cargo-grid')}catch(e){}}"

                    ),

                    array('class' => 'bt')

            );

            ?>


             <?php

            echo CHtml::ajaxButton(

                    'Pesquisar',

                    CController::createUrl('cargo/pesquisar'),

                    array(

                        'dataType' => 'html',

                        'success' => "function(data, textStatus, XMLHttpRequest){try{\$('#cargo-grid').yiiGridView.update('cargo-grid')}catch(e){}}"

                    ),

                    array('class' => 'bt')

            );

            ?>


        </div>



Controller




 /**

     *

     */

    public function actionIndex() {


        if (isset($_POST['Cargo'])) {

            $this->model->attributes = $_POST['Cargo'];

            if ($this->model->save()) {

                $this->layout = false;

                $this->model->unsetAttributes();  // clear any default values

                $this->render('_grid', array(

                    'dataProvider' => $this->dataProvider,

                    'model' => $this->model,

                ));

                Yii::app()->end();

            }

        }


        $this->render('index', array(

            'dataProvider' => $this->dataProvider,

            'model' => $this->model,

        ));

    }


    /**

     *

     */

    public function actionPesquisar() {

        if (isset($_POST['Cargo'])) {

            $this->model->unsetAttributes();

            $this->model->attributes = $_POST['Cargo'];

            $this->dataProvider = $this->model->pesquisar();

        }

        $this->render('_grid', array(

            'dataProvider' => $this->dataProvider,

            'model' => $this->model,

        ));

    }



O salvar esta funcionado mas o pesquisar nao sei com atualizar a CGridView com o resultado da pesquisa.

Gostaria de saber se existe um jeito melhor pq o salvar realizar duas operações em ajax.(uma para salvar e outra para atualizar a CGridView)

Obrigado!

Então alguém não entendeu.

Não Há resposta?

Só quero pesquisar no formulário com Ajax e exibir na crid o filtro.

Valeu

via javascript: $.fn.yiiGridView.update(gridID);

Veja se seu sucess do ajaxButton não ta gerando nenhum erro com o DragonFly ou o Firebug. Da forma como vc fez eu não ví antes. Eu uso da forma que eu postei acima e funciona bem.