Yii では、CGridView の行に独自の背景色があります。しかし、私がやりたいのは、列の値に基づいて特定の行を強調表示することです。
たとえば、id、name、status の 3 つの列があります。ここで、ステータスの値が非アクティブまたは 0 の場合、行を色で強調表示する必要があります。
クラスリファレンスを簡単に読み、このサイトも検索しました。しかし、関連する解決策が見つかりませんでした。いくつかの例または正しい解決策への方向性があれば、それは大歓迎です。
ありがとう、ウジワル
Yii では、CGridView の行に独自の背景色があります。しかし、私がやりたいのは、列の値に基づいて特定の行を強調表示することです。
たとえば、id、name、status の 3 つの列があります。ここで、ステータスの値が非アクティブまたは 0 の場合、行を色で強調表示する必要があります。
クラスリファレンスを簡単に読み、このサイトも検索しました。しかし、関連する解決策が見つかりませんでした。いくつかの例または正しい解決策への方向性があれば、それは大歓迎です。
ありがとう、ウジワル
CGridView 'rowCssClassExpression'は、必要なものを取得する方法です。
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'rowCssClassExpression'=>'($data->myFlag==0)?"normal":"especial"',
'columns'=>array(
...
),
));
カスタム php 関数を呼び出して、$data 変数を渡すこともできます。その関数は、指定された行のクラス名を返す必要があります:)
機能にはrowCssClassとrowCssClassExpressionを使用してください。私はこのコードをテストしていませんが、解決策を得るために使用できるトリックです。
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'rowCssClass'=>array('odd','even'),
'rowCssClassExpression'=>($data->status==0)?even:odd,
'columns'=>array(
),
));