2012-04-10 35 views
10

Tôi có bảng nhà cung cấp (id, title, onoff) trong đó cột onoff là trạng thái: 1 = on, 0 = off Tôi không có bảng trong DB cho các trạng thái này, vì vậy tôi không có mô hình cho các trạng thái.Bộ lọc CGridView thả xuống từ mảng

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'provider-grid', 
    'dataProvider'=>$model->search(), 
    'filter'=>$model, 
    'columns'=>array(
     array(
      'name'=>'id', 
      'htmlOptions'=>array('width'=>'40px'), 
     ), 
     'title', 
     array(
      'name'=>'onoff', 
      'filter'=>CHtml::dropDownList('Provider[onoff]', '', 
       array(
        ''=>'All', 
        '1'=>'On', 
        '0'=>'Off', 
       ) 
      ), 
     ), 
     array(
      'class'=>'CButtonColumn', 
      'template'=>'{update}{delete}' 
     ), 
    ), 

Nó lọc dữ liệu, nhưng sau khi ajax quên tình trạng thả xuống cách tốt nhất để xây dựng danh sách thả xuống trong trường hợp này là gì?

Và cách tốt nhất để thay thế 1 thành Bật và 0 thành Tắt trong các ô dữ liệu là gì?

+1

nó ok để chấp nhận giải pháp của riêng mình, do đó, đặt các phần đã chỉnh sửa như một câu trả lời, và chấp nhận nó. giúp giữ tỷ lệ phần trăm câu hỏi chưa được trả lời thấp. –

Trả lời

7
array('name' => 'language', 
'value' => '$data->language', 
'filter' => CHtml::listData(Vediodesc::model()->findall(), 'language', 'language'), 
), 
21
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'provider-grid', 
'dataProvider'=>$model->search(), 
'filter'=>$model, 
'columns'=>array(
    array(
     'name'=>'id', 
     'htmlOptions'=>array('width'=>'40px'), 
    ), 
    'title', 
    array(
     'name'=>'onoff', 
     'value'=>'Crud::getOnoff($data->onoff)', 
     'filter'=>CHtml::listData(Crud::getOnoffs(), 'id', 'title'),, 
    ), 
    array(
     'class'=>'CButtonColumn', 
     'template'=>'{update}{delete}' 
    ), 
), 

Trong mô hình

public function getOnoffs() 
{ 
return array(
    array('id'=>'1', 'title'=>'On'), 
    array('id'=>'0', 'title'=>'Off'), 
); 
} 
public function getOnoff($onoff) 
{ 
if($onoff == 1) 
    return 'On'; 
else 
    return 'Off'; 
} 
Các vấn đề liên quan