【问题标题】:Yii Clistview only print onceYii Clistview 只打印一次
【发布时间】:2014-03-06 10:44:46
【问题描述】:

我只想在 Clistview 中回显一个 div,项目按状态排序,所以,我想打印状态 1 -> 所有项目,然后是状态 2 -> 所有具有该状态的项目,我试过viewData,但是不知道怎么改flag的值。

索引视图:

<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 视图:

<?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;
    }
?>

【问题讨论】:

  • 您说的是哪些标志?为什么要更改标志?
  • 因为我只想在 clistview 的开头回显标签“activos”一次,并在“activos”结束时回显标签“inactivos”一次。
  • 其实我对你的问题感到困惑。如果我错了,请纠正我。您想根据标志的值显示标签吗?
  • 还详细说明您想做什么。我无法回答你的问题。

标签: yii frameworks clistview


【解决方案1】:

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

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

在局部视图中:

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;
}

【讨论】:

    猜你喜欢
    • 2018-03-27
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2018-12-25
    • 2019-06-30
    • 1970-01-01
    • 2012-04-17
    相关资源
    最近更新 更多