How To Refresh Cgridview?

Hi, I have a CGridView and I’d like to put a button to refresh.

I’ve tried adding AjaxButton but I couldn’t make it.

The grid ID is session-grid.

I have a partial view with only the CGridView.

I managed to get it working but it’s duplicated, I am missing anything?

Thanks a lot!




$.fn.yiiGridView.update("session-grid")



try this

Yii::app()->clientScript->registerScript(‘session’, "

$(’#buttonID’).click(function(){

$.fn.yiiGridView.update('session-grid', {


	data: $(this).serialize()


});


return false;

});

");

Thanks, but can’t I just use CHTML::AjaxButton with parameters?

Edit: Seems that finally I managed to get it working.




<?php 

  $this->widget('bootstrap.widgets.TbButton', array(

    'label'=>'Actualizar',

    'buttonType'=>'ajaxButton',

    'type'=>'primary',

    'url'=>array('productSession/admin','ajax'=>'session-grid'),

    'ajaxOptions'=>array(

      'replace'=>'#session-grid',

    ),

    'htmlOptions'=>array(

      'id'=>'updateGrid',

    )

  )); 

?>

Does the magic, but without the ‘loading’ image.

Strange is that if I put ‘update’ instead of ‘replace’, when I click the Delete button in the grid, I get a JavaScript error regarding to url not defined.

Well I finally opted for another solution:


<?php 

Yii::app()->clientScript->registerScript('initRefresh',<<<JS

    $('#update-grid-button').on('click',function(e) {

        e.preventDefault();

        $('#session-grid').yiiGridView('update');

    });

JS

,CClientScript::POS_READY);


  $this->widget('bootstrap.widgets.TbButton', array(

    'label'=>'Actualizar',

    'type'=>'primary',

    'icon'=>'repeat white',

    'htmlOptions'=>array(

      'id'=>'update-grid-button',

      'class'=>'pull-right',

    )

  )); 

?>