CGridView filtre déroulant à partir de la matrice de

J'ai le tableau de fournisseurs (id, titre, onoff) où onoff colonne de statut: 1 = on, 0 = off
Je n'ai pas de table dans la DB pour ces états, donc je n'ai pas de modèle pour les statuts.

$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}'
        ),
    ),

Il filtre les données, mais après ajax oublier l'état de la liste déroulante
Quelle est la meilleure façon de construire déroulant dans ce cas?

Et quelle est la meilleure façon de remplacer 1 et 0 Off dans le datagrid cellules?

c'est ok pour accepter votre propre solution, de façon à placer l'modifié en partie comme une réponse, et de l'accepter. permet de garder la question sans réponse de pourcentage faible.

OriginalL'auteur dr0zd | 2012-04-10