从 CgridView Filter -Yii1 中的过滤器中删除空选项
To remove empty option from filter in CgridView Filter -Yii1
我想删除列表数据值的空或第一个选项。我有 FruitList
模型,它有一个列表,所以我需要防止用户 select all.
但现在的问题是可以让用户select所有水果的空选项,所以我该如何删除。
这是我的代码
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'header' => 'Buyer',
'name' => 'Buyer',
'value' => 'customer_name',
'filter' => $fruits
),
array(
'header' => 'Fruits',
'name' => 'fruit_id',
'value' => '$data->Buyers->FruitList->Name',
'filter' => $fruits
),
array(
'class'=>'CButtonColumn',
),
),
));
您可以在 dataProvider 中设置条件,因此它 return 您的结果不为空 value.for 示例
$dataProvider->criteria->addCondition('fruit_id IS NOT NULL ');
我希望它的工作!
默认情况下,CGridView
的过滤器呈现带有空选项的下拉列表,以允许禁用过滤。但是您可以通过提供自己的下拉列表作为过滤器来覆盖此行为:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'header' => 'Buyer',
'name' => 'Buyer',
'value' => 'customer_name',
'filter' => CHtml::activeDropDownList($model, 'customer_name', $fruits),
),
array(
'header' => 'Fruits',
'name' => 'fruit_id',
'value' => '$data->Buyers->FruitList->Name',
'filter' => CHtml::activeDropDownList($model, 'fruit_id', $fruits)
),
array(
'class'=>'CButtonColumn',
),
),
));
确保您在模型中为这些过滤器设置了默认值 - 在您的控制器中是这样的:
// ...
$model->fruit_id = FruitList::DEFAULT_ID;
$model->customer_name = FruitList::DEFAULT_ID;
if (isset($_GET['FruitList'])) {
$model->setAttributes($_GET['FruitList']);
}
$dataProvider = $model->search();
// ...
我想删除列表数据值的空或第一个选项。我有 FruitList
模型,它有一个列表,所以我需要防止用户 select all.
但现在的问题是可以让用户select所有水果的空选项,所以我该如何删除。
这是我的代码
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'header' => 'Buyer',
'name' => 'Buyer',
'value' => 'customer_name',
'filter' => $fruits
),
array(
'header' => 'Fruits',
'name' => 'fruit_id',
'value' => '$data->Buyers->FruitList->Name',
'filter' => $fruits
),
array(
'class'=>'CButtonColumn',
),
),
));
您可以在 dataProvider 中设置条件,因此它 return 您的结果不为空 value.for 示例 $dataProvider->criteria->addCondition('fruit_id IS NOT NULL '); 我希望它的工作!
默认情况下,CGridView
的过滤器呈现带有空选项的下拉列表,以允许禁用过滤。但是您可以通过提供自己的下拉列表作为过滤器来覆盖此行为:
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'header' => 'Buyer',
'name' => 'Buyer',
'value' => 'customer_name',
'filter' => CHtml::activeDropDownList($model, 'customer_name', $fruits),
),
array(
'header' => 'Fruits',
'name' => 'fruit_id',
'value' => '$data->Buyers->FruitList->Name',
'filter' => CHtml::activeDropDownList($model, 'fruit_id', $fruits)
),
array(
'class'=>'CButtonColumn',
),
),
));
确保您在模型中为这些过滤器设置了默认值 - 在您的控制器中是这样的:
// ...
$model->fruit_id = FruitList::DEFAULT_ID;
$model->customer_name = FruitList::DEFAULT_ID;
if (isset($_GET['FruitList'])) {
$model->setAttributes($_GET['FruitList']);
}
$dataProvider = $model->search();
// ...