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))',
),
),
),
),
));
?>