Multiple CGridView and missing pagination / pagers

I’m showing multiple CGridView via CJuiTabs. but the pager is only displayed in one of the 3 CGridView’s (the first one in the Suppliers tab) … is it possible to have all 3 showing the pager?

Action:


	public function actionView($id)

	{

		$job = $this->loadModel($id);

		

		// Get Data Provider for CGridView of associated Activities

		$dpActivities = new CActiveDataProvider('Activity', array(

			'data' => $job->activities,

			'pagination'=>array(

				'pageSize'=>5,

			),			

		));

		

		dg($dpActivities);

		

		// Get Data Provider for CGridView of associated Companies

		$dpCompanies = new CActiveDataProvider('Company', array(

			'data' => $job->companies,

		));

		

		// Get Data Provider for CGridView of ALL Companies

		$dpAllCompanies = new CActiveDataProvider('Company', array(

			'criteria' => array(

				'with' => array('jobs'),

			),														   

		));

		

		// Hide CGridView for ALL Companies

		$cs = cs();

		$cs->registerScript('a1','$("#company-grid-tab-all").hide();');

		

		//dg($dpAllCompanies->getData());

		

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

			'model' => $job,

			'dpActivities' => $dpActivities,

			'dpCompanies' => $dpCompanies,

			'dpAllCompanies' => $dpAllCompanies,

		));

	}

View with CJuiTabs:


<?php

$this->breadcrumbs=array(

	'Jobs'=>array('index'),

	$model->title,

);

?>


<h1>View Job <?php echo $model->job_id; ?></h1>


<?php


if (user()->isAdmin())

{

	$this->widget('ext.JuiButtonSet.JuiButtonSet', array(

		'items' => array(

			array(

				'label'=>'Create New',

				'icon-position'=>'left',

				'url'=>array('create'),

			),

			array(

				'label'=>'Update',

				'icon-position'=>'left',

				'url'=>array('update', 'id'=>$model->id),

			),

			array(

				'label'=>'Delete',

				'icon-position'=>'left',

				'url'=>'#',

				'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>'Are you sure you want to delete this item?'),

			),

		),

		'htmlOptions' => array('style' => 'clear: both;'),

	));	

}


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

	'data'=>$model,

	'attributes'=>array(

		'id',

		'job_id',

		'title',

		'description',

		'open_date',

		'close_date',

		'created',

		'modified',

	),

));


if (user()->isAdmin())

{

	$this->widget('zii.widgets.jui.CJuiTabs', array(

		'tabs' => array(

			'Activities' => $this->renderPartial('_view_activities',array(

				'job' => $model,

				'dpActivities' => $dpActivities,

			), true, false),

			'Suppliers' => $this->renderPartial('_view_companies',array(

				'job' => $model,

				'dpCompanies' => $dpCompanies,

				'dpAllCompanies' => $dpAllCompanies,

			), true, false),

			'Submissions' => 'asdf',

			'Activity Log' => 'asdf',

		),

		// additional javascript options for the tabs plugin

		'options' => array(

			'collapsible' => false,

		),

	));

}

?>

View used for Tab Activites with single CGridView:


<?php


// Button to display Add New Activity button

$this->widget('zii.widgets.jui.CJuiButton', array(

	'name'=>'createActivityButton',

	'buttonType' => 'link',

	'caption'=>'Create Activity',

	//'url'=>url("activity/create", array("Job_id" => $jobId)),

	'url'=>url("activity/create", array("Job_id" => $job->id)),

	//'onclick'=>'js:function(){window.location="'.url('activity/create', array("Job_id" => $jobId)).'";}',

	'options'=>array(

		'icons' => array(

			'primary' => 'ui-icon-plusthick',

		),

	),

));


// Display Activities Grid

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

	'id'=>'activity-grid-tab',

	'dataProvider'=>$dpActivities,

	'columns'=>array(

		'id',

		'title',

		'description',

		'created',

		'modified',

		'Job_id',

		array(

			'class'=>'MyButtonColumn',

			'viewButtonUrl' => 'url("/activity/view", array("id" => $data->id))',

			'updateButtonUrl' => 'url("/activity/update", array("id" => $data->id))',

			'deleteButtonUrl' => 'url("/activity/delete", array("id" => $data->id))',

		),

	),

));


?>

View used for Tab Suppliers with single CGridView:


<input type="hidden" name="jobId" id="jobId" value="<?=$job->id?>" />

<?php


// Button to display Choose Suppliers button

$this->widget('zii.widgets.jui.CJuiButton', array(

	'name'=>'chooseSuppliersButton',

	'buttonType' => 'link',

	'caption'=>'Choose Suppliers',

	'onclick'=>'js:function(){

		if ($("#company-grid-tab-all").is(":hidden")) {

			$("#company-grid-tab-all").show("fast");

		} else {

			$("#company-grid-tab-all").hide("fast");

		}

		$("#chooseSuppliersButton span:first").toggleClass("ui-icon-minusthick ui-icon-plusthick");

	}',

	'options'=>array(

		'icons' => array(

			'primary' => 'ui-icon-plusthick',

		),

	),

));


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

	'id'=>'company-grid-tab-all',

	'dataProvider'=>$dpAllCompanies,

	'columns'=>array(

		'id',

		'title',

		'activity',

		'phone',

		'postcode.pcode',

		array(

			'name'=>'postcode.locality',

			'value'=>'CString::properCase($data->postcode->locality, true)',

		),

		'postcode.state',

		array(

			'class'=>'MyButtonColumn',

			'template'=>'{add}',

			'buttons'=>array(

				'add'=>array(

					'label'=>'Add Supplier',

					//'url'=>'url("#")',

					'imageUrl'=>'/images/icons/building_add.png',

                    'ajax'=>true,

                    'url'=>'url("job/addcompany",array("cid"=>$data->id))',

					'refresh'=>'company-grid-tab',

				),

			),

		),

	),

));


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

	'id'=>'company-grid-tab',

	'dataProvider'=>$dpCompanies,

	'columns'=>array(

		'id',

		'title',

		'activity',

		'phone',

		'postcode.pcode',

		array(

			'name'=>'postcode.locality',

			'value'=>'CString::properCase($data->postcode->locality, true)',

		),

		'postcode.state',

		array(

			'class'=>'MyButtonColumn',

			'template'=>'{remove}',

			'viewButtonUrl' => 'url("/company/view", array("id" => $data->id))',

			'updateButtonUrl' => 'url("/company/update", array("id" => $data->id))',

			'deleteButtonUrl' => 'url("/company/delete", array("id" => $data->id))',

			'buttons'=>array(

				'remove'=>array(

					'label'=>'Remove Supplier',

					//'url'=>'url("#")',

					'imageUrl'=>'/images/icons/building_delete.png',

                    'ajax'=>true,

                    'url'=>'url("job/removecompany",array("cid"=>$data->id))',

				),

			),

		),

	),

));

?>

Hi streetdaddy,

Have you found a solution?

I have the same problem.

Thank you.

Mix7eart

Unfortunately not… I haven’t had a good crack at it yet because other functionality was more important. As soon as those grids start getting more records it’s going to become a priority pretty fast! Good luck with it.