在Yii中自定义Xmultiselect

时间:2013-08-06 08:48:10

标签: yii-extensions yii yii-components

我无法在加载时在空模式下创建多选小部件的左侧列表。将null值设置为左侧列表时显示错误。这是我的代码:

  $this->widget('ext.widgets.multiselects.XMultiSelects', array(
                                    'leftTitle' => '',
                                    'leftName' => 'Certificate[selected][]',
                                    'leftList' => SpecificCertification::model()->findCertificate(),// here I need to make the list empty
                                    'rightTitle' => '',
                                    'rightName' => 'Certificate[all][]',
                                    'rightList' => SpecificCertification::model()->findCertificates(),
                                    'size' => 10,
                                ));

如何将左侧列表设为空?

1 个答案:

答案 0 :(得分:0)

您需要打开文件小部件XMultiSelects.php并根据需要进行修改

public function init()
    {
/* Comment out the below validation
        if(!isset($this->leftList))
        {
            throw new CHttpException(500,'"leftList" have to be set!');
        }
        if(!isset($this->rightList))
        {
            throw new CHttpException(500,'"rightList" have to be set!');
        }
*/
    }

为leftList和rightList添加验证,如下面的

if($this->leftList){
            foreach($this->leftList as $value=>$label)
            {
                echo "<option value=\"{$value}\">{$label}</option>\n";
            }
        }

if($this->rightList){
        foreach($this->rightList as $value=>$label)
            {
                echo "<option value=\"{$value}\">{$label}</option>\n";
            }
        }

之后,您可以为它们设置null,就像您所做的那样