在 Yii 的下拉菜单中设置每个选项的样式

Styling each option in dropdown in Yii

我有一个下拉列表

    $Customer=Customer::getDecisionMakingCompany();
    $div_topic.= CHtml::dropDownList('picks_customer_id',"picks_customer_id",$Customer,array('multiple'=>true));

列表来自模型

public static function getDecisionMakingCompany() {
    $condition = 'status=  "Y" AND type=1';
    $model = self::model()->findAll(array('condition' => $condition,'order'=>'customer_name'));
    return CHtml::listData($model, 'id', 'customer_name');
}

每个客户在数据库中都有一种颜色。我怎样才能将该颜色赋予选项文本。请帮忙

我认为您可以通过这种方式为每个值设置 htmlOption:

$Customer=Customer::getDecisionMakingCompany();
$div_topic.= CHtml::dropDownList('picks_customer_id',"picks_customer_id",
      $Customer,array('multiple'=>true, 
          array( 'value1'=>array('style'=>'color: yourColor1', ),   
                 'value2'=>array('style'=>'color: yourColor2'),
           ));

请在您的模型和视图文件中进行以下更改:

查看文件

$Customer = Customer::getDecisionMakingCompany();

echo CHtml::tag('select', array('id' => 'picks_customer_id', 'name' => 'picks_customer_id[]', 'multiple' => true));

if (!empty($Customer)) {
        foreach ($Customer as $index => $cust) {        
                echo CHtml::tag('option', array('value' => $cust->id, 'style' => 'color:' . $cust->color), $CHtml::encode($cust->customer_name), true);
        }
}

模型文件

public static function getDecisionMakingCompany() {
    $condition = 'status=""Y"" AND type=1';
    $model = self::model()->findAll(array('condition' => $condition, 'order'=>'customer_name'));
    return $model;
}

希望对您有所帮助!如果对此有任何顾虑,请告诉我。