Yii Clistview只打印一次

时间:2014-03-06 10:44:47

标签: yii frameworks clistview

我想在Clistview中只回显一次div,项目按状态排序,因此,我想打印状态1 - >所有项目,然后状态2 - >所有具有该状态的项目,我尝试了viewData,但我不知道如何更改标志的值。

INDEX VIEW:

<div class="modal-body">
        <?php 
            $activos_flag = 1;
            $inactivos_flag = 1;
        ?>
        <?php 
            $this->widget('zii.widgets.grid.CListView', array(
                'id'=>'incs',
                'summaryText'=>'',
                'dataProvider'=>$dataProviderInc,
                'itemView'=>'_incidencias',
                'viewData'=> array('activo'=> $activos_flag,'inactivo'=>$inactivos_flag),
            ));
        ?>
    </div>

_INCIDENCIAS VIEW:

<?php 
    if ($data->activo == 1 and $data->incidencia_estado == 1){
        echo ('<label class="incidencias">ACTIVOS</label>');
        $data->activo = 0;
    }
    if ($data->inactivo == 1 and $data->incidencia_estado == 0){
        echo ('<label class="incidencias">INACTIVOS</label>');
        $data->inactivo = 0;
    }
?>

1 个答案:

答案 0 :(得分:1)

您需要获取的值不是来自数组$data$data->inactivo),而是直接来自变量$inactivo。但无论如何,在每次迭代中,这些变量的值将再次等于1。在这种情况下,您可以使用以下方法: 在小部件声明之前:

Yii::app()->params['activos_flag']=1;
Yii::app()->params['inactivos_flag']=1;

并在parial视图中:

if ( Yii::app()->params['activos_flag'] == 1 ){
    echo ('<label class="incidencias">ACTIVOS</label>');
    Yii::app()->params['activos_flag'] = 0;
}
if ( Yii::app()->params['inactivos_flag'] == 1 ){
    echo ('<label class="incidencias">INACTIVOS</label>');
    Yii::app()->params['inactivos_flag'] = 0;
}