How to implement CGridView + ajax pagination?
How to implement CGridView + ajax pagination?
Should be implemented by default if you pass it an IDataProvider. Post your controller and view code please.
Cheers,
Matt
controller
public function actionAdmin()
{
$model=new PatientsFlags('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['PatientsFlags']))
$model->attributes=$_GET['PatientsFlags'];
$this->render('admin',array(
'model'=>$model,
));
}
view
<?php
$model = new patientsFlags;
if(isset($_SESSION['criteria'])){
$dataProvider=new CActiveDataProvider('patientsFlags', array(
'criteria'=>$model->search(), //hack to get ajax pagination to work
'pagination'=>array(
'pageSize'=>10,
),
));
?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'patients-flags-grid',
'dataProvider'=>$dataProvider,
'filter'=>$model,
'pager'=>array('cssFile'=>Yii::app()->baseUrl.'/css/_styles.css'),
'cssFile' => Yii::app()->baseUrl . '/css/_styles.css',
'columns'=>array(
'flag_id',
'flag_name',
array(
'class'=>'CButtonColumn',
),
),
));
}
?>
Hi,
Looks alright. Just change GridView to:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'patients-flags-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'pager'=>array('cssFile'=>Yii::app()->baseUrl.'/css/_styles.css'),
'cssFile' => Yii::app()->baseUrl . '/css/_styles.css',
'columns'=>array(
'flag_id',
'flag_name',
array(
'class'=>'CButtonColumn',
),
),
));
and get rid of
$model = new patientsFlags;
if(isset($_SESSION['criteria'])){
$dataProvider=new CActiveDataProvider('patientsFlags', array(
'criteria'=>$model->search(), //hack to get ajax pagination to work
'pagination'=>array(
'pageSize'=>10,
),
));
You can set the page size etc. in the model.
Matt
thanks matt…