从CGridView过滤器的listData中删除空选项

时间:2014-04-12 08:46:17

标签: yii filter cgridview

我想删除列表数据值的空或第一个选项。 我有Bankaccount模型,它有一个列表,所以我需要阻止用户选择所有。

我已经选择了该列表中的第一个作为默认值,但现在问题是可以让用户选择所有Bankaccount的空选项仍然存在,所以如何删除。

这是我的代码

array(
        'name' => 'bank_account_id',
        'type' => 'raw',
        'value' => '$data->bankaccount->BankAccountName', 
        'filter' => Chtml::listData(Bankaccount::model()->findAll(array('order' => 'name  DESC')), "id", "BankAccountName"),
    ),

2 个答案:

答案 0 :(得分:1)

如果你看一下生成过滤器的this method,你会看到它在输入数组时总是添加空选项。因此,隐藏空选项的唯一方法是手动生成选择框:

'filter' => CHtml::activeDropDownList(Bank::model(), 'bank_account_id',
    Chtml::listData(Bankaccount::model()->findAll(array('order' => 'name  DESC')), "id", "BankAccountName"),
    ),
),

使用CHtml :: activeDropDownList会在selectbox名称中为您提供 Bank [bank_account_id]

答案 1 :(得分:0)

用于过滤器部件,

'filter' => Chtml::dropdownList('Bank[bank_account_id]' , 'selectedDefault',
    Chtml::listData(Bankaccount::model()->findAll(array('order' => 'name  DESC')), "id", "BankAccountName"),
    ),
),