Hey guys,
i’m facing a problem making me crazy with CGridView (ok, original i’m using TbGridView, but CGridView has the same problem).
Short: I’m using a CArrayDataProvider stored in the user session. When doing a changeover, the table doesn’t refresh.
Doing like this:
Controller:
    protected function actionIndex()
    {
    	...
    	$dpProvider = $model->wsGetEntries(); //Fetching data from model, returning a CArrayDataProvider
    	Yii::app()->user->setState('dpProvider', $dpProvider );
	$this->redirect(array('showDetails'));
    	...
    }
...
    protected function actionShowDetails()
    {
    	...
    	$dpProvider = Yii::app()->user->getState('dpProvider');
        $this->render("showDetails", array('
                        'pageTitle'=>$pageTitle,
                        'dpProvider '=>$dpProvider ,
                        'model'=>$model )
        );
    }
View:
...
    	<?php $this->widget('bootstrap.widgets.TbGridView',array(
	                        'id'=>'ID',
	                        //'dataProvider'=>$dpProvider, // NOT WORKING
	                        'dataProvider'=>new CArrayDataProvider($dpProvider->rawData, // WORKING
    	    	    	    	    	    	    	    		array(
								    		'id'=>$dpProvider->getId(),
								    		'pagination' => $dpProvider->getPagination(),
								    		'sort'=>$dpProvider->getSort(),
    									)
    				),
	                        'pager'=>array(
	                            'class'=>'bootstrap.widgets.TbPager',
	                            'displayFirstAndLast'=>true,
	                            'htmlOptions'=>array('class'=>'pagination pagination-sm'),
	                        ),
	                        'htmlOptions'=>array('class'=>'g-grid-view'),
	                        'columns'=>array(...)));
    	?>
....
I already tried:
    protected function actionShowDetails()
    {
    	...
        //$currentPage somehow identified
        ...
    	$dpProvider = Yii::app()->user->getState('dpProvider');
        $dpProvider->getPagination()->setCurrentPage($currentPage)
        $this->render("showDetails", array('
                        'pageTitle'=>$pageTitle,
                        'dpProvider '=>$dpProvider ,
                        'model'=>$model )
        );
    }
...
    	<?php $this->widget('bootstrap.widgets.TbGridView',array(
	                        'id'=>'ID',
	                        'dataProvider'=>$dpProvider, // NOT WORKING
	                        'pager'=>array(
	                            'class'=>'bootstrap.widgets.TbPager',
	                            'displayFirstAndLast'=>true,
	                            'currentPage=$currentPage,
	                            'htmlOptions'=>array('class'=>'pagination pagination-sm'),
	                        ),
	                        'htmlOptions'=>array('class'=>'g-grid-view'),
	                        'columns'=>array(...)));
    	?>
....
And a couple of other ideas… but nothing worked really good, except from instantiating a new CArrayDataProvider.
But usually that’s against my expectations and my style of programming…
Anyone has an idea why it’s not working?
Best regards,
Schmu