2016-04-18 18 views
-1

私はユーザーモデルを持っています。データ値に応じて行を色付けする方法Yii CGridView

CGridViewで表示する$model->is_admin(0または1)の2色のいずれかの整数です。

CGridViewの簡単な設定でできますか?

コントローラ

/** 
* Lists all models. 
*/ 
public function actionIndex() { 
    $model = new Users('search'); 
    $model->unsetAttributes(); // clear any default values 
    if (isset($_GET['Users'])) 
     $model->attributes = $_GET['Users']; 

    $this->render('index', array(
     'model' => $model, 
    )); 
} 

ビューここ

<div class="row"> 
    <div class="col-sm-12 table-responsive"> 
     <?php 
     $this->widget('zii.widgets.grid.CGridView', array(
      'id' => 'users-grid', 
      'itemsCssClass' => 'table table-bordered table-hover dataTable', 
      'dataProvider' => $model->search(), 
      'enablePagination' => false, 
      // 'filter'=>$model, 
      'columns' => array(
       'username', 
       'first_name', 
       'last_name', 
       'email', 
       ), 
       array(
        'class' => 'CButtonColumn', 
       ), 
      ), 
     )); 
     ?> 
    </div> 
</div> 
+0

あなたは何を試しましたか? – DocRattie

+0

CGridView :: rowCssClassExpression。 – webSkunk

+0

はそれに間違ったことがあるかもしれません – webSkunk

答えて

0

はあなたに役立つことが格好良い例です。

http://www.yiiframework.com/wiki/314/cgridview-use-special-variable-data-in-the-htmloptions-of-a-column-i-e-evaluate-htmloptions-attribute/

ビルドイン機能のみを使用して自分自身で実装している運がなかったので、唯一の選択肢かもしれません。 私はこれを試しませんでしたが、コメントが言うように、それは動作するはずです。

EDIT: 私は、はるかに短い道

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider' => $data_provider, 
    'rowCssClassExpression' => '$data["is_admin"] ? "tr_isadmin" : ""', 
    'columns' => array(
     array(
      'header' => 'Is admin?', 
      'name' => 'is_admin', 
     ), 
    ), 
); 

をそれを作った、rowCssClassExpressionは$データ[ "is_admin"]の値に基づいてTRラッパーのクラスを追加します。

その後、単にもちろん

.tr_isadmin { 
    background-color: red; 
} 

のようにCSSを追加し、それだけで単純化した例です。あなたはあなたの目的のためにそれを適応させる必要があります。

+0

百万円。できます。 – webSkunk

+0

をマウスオーバーすると元の色に戻りますか? – webSkunk

+0

自由に試してみてください。 – sszymk

関連する問題