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