2014-03-06 81 views
0

我想在Clistview中只回顯div一次,這些項目是按狀態排序的,所以,我想打印狀態1 - >所有項目,然後狀態2 - >所有項目有了這個狀態,我嘗試了viewData,但是我不知道如何改變標誌的值。Yii Clistview只打印一次

索引視圖:

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

你正在談論哪些標誌?爲什麼你想改變旗幟? –

+0

,因爲我只想在clistview開始時回顯標籤「activos」,並且在「activos」結束時只回響一次標籤「inactivos」。 –

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

那就是關鍵,非常感謝! –