ayuda cgridview en CActiveForm y filtro en encabezado

buenas compañeros les comento mi caso, tengo un formulario donde debo mostrar un cGridview unos datos para checkear y mandar lo checkeado a un responsable q es el q esta en el droDownList, como son varios registros quisiera q el cGridview se pudiera filtrar por el filtro q aparece en header, pero cuando intento hacerlo me ocurren unas cosas:

En los campos relacionados no me filtra, y en algun momento filtro por los campos q si me deja (id Radicado,estado fecha) y filtra pero hace como un refresh y vuelve como estaba antes, entonces no se como soluciona esto amigos, gracias

tengo esto en mi modelo EstadoCuenta


 public function asignar_radicados()

	{

                $usuario=Yii::app()->user->id;

                $secretaria=Usuarios::model()->findByPK(Yii::app()->user->id)->id_secretaria;

		$criteria=new CDbCriteria;

		$criteria->with = array('idRadicado','idUsuarioCargo');

		

               

                if ($model_usuarios->id_tipo_usuario==3)//rol radicador

                {

                    $criteria->condition="estado='RADICADO' and idRadicado.id_secretaria=".$secretaria;

                }

                $criteria->compare('t.id_radicado',$this->id_radicado,true);

		$criteria->compare('idRadicado.vigencia',$this->vigencia,true);

		$criteria->compare('idRadicado.contrato',$this->contrato,true);

                $criteria->compare('idRadicado.cedula',$this->cedula,true);

                $criteria->compare('idRadicado.nombre',$this->nombre,true);

                $criteria->compare('estado',$this->estado,true);

                $criteria->compare('idUsuarioCargo.nombre',$this->nombre_usuario,true);

		$criteria->compare('t.fecha',$this->fecha,true);

               		return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

                            

                        'pagination'=>array('pageSize'=>20),

		));

	}

esto en mi contoller EstadoCuentaController


 public function accessRules()

	{

		return array(

			array('allow',  // allow all users to perform 'index' and 'view' actions

				'actions'=>array('index','view','create2','create','EstadoCuentaView','MostrarRadicados'

                                    ,'AsignarRadicados','ActualizarRadicadosAsignados'),

				'users'=>array('@'),

			),

			array('allow', // allow authenticated user to perform 'create' and 'update' actions

				'actions'=>array('create','update','create2','MostrarRadicados','AsignarRadicados','ActualizarRadicadosAsignados'),

				'users'=>array('@'),

			),

			array('allow', // allow admin user to perform 'admin' and 'delete' actions

				'actions'=>array('admin','delete','create2','MostrarRadicados','AsignarRadicados','ActualizarRadicadosAsignados'),

				'users'=>array('@'),

			),

			array('deny',  // deny all users

				'users'=>array('@'),

			),

		);

	}

  public function actionAsignarRadicados()//aca es donde va el save creo q tendre algo mal aca, porq quiero mostrar la lista y q a su vez ps el save se haga cuando de en el boton crear.

	{

		$model=new EstadoCuenta('asignar_radicados');

		$model->unsetAttributes();  

                if(isset($_GET['EstadoCuenta']))

			$model->attributes=$_GET['EstadoCuenta'];


		$this->render('asignar_radicados',array(

			'model'=>$model,

		));

    	}



esto en mi vista asignar_radicados


<?php

?>

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'asignacion-form',

        'enableAjaxValidation'=>false,

    

    )); ?>

    	

<?php 

if($model->isNewRecord){

?>  

    	<?php echo $form->errorSummary($model); ?>


        <div class="row">

                <?php echo $form->labelEx($model,'Seleccione Revisor'); ?>

                <?php echo $form->dropDownList($model,'id_usuario',  Usuarios::getListUsuarios()); ?>

                <?php echo $form->error($model,'id_usuario'); ?>

        </div>

        <div class="row buttons">

        <?php echo CHtml::submitButton($model->isNewRecord ? 'Crear' : 'Actualizar'); ?>

        </div>

    

        <div style="width:910px;overflow-x:scroll;">

        <?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'asignar_radicados-grid',

	'dataProvider'=>$model->asignar_radicados(),

	'filter'=>$model,

        'htmlOptions'=>array('style'=>'width:1000;'),

	'columns'=>array(

                array ( 

                    'id' => 'id_radicado' ,

                    'name'=>'id_radicado',

                    'class' => 'CCheckBoxColumn' ,

                    'selectableRows' => '2' ,   

                ) ,    	

                array(

                    'name'=>'id_radicado',

                    'htmlOptions'=>array('style'=>'width:60px;'),

                ), 

                array(

                    'name'=>'vigencia', 

                    'header'=>'Vigencia',

                    'value'=>'$data->idRadicado->vigencia',

                    'htmlOptions'=>array('style'=>'width:50px;'),

		),

                array(

                    'name'=>'contrato', 

                    'header'=>'Contrato',

                    'value'=>'$data->idRadicado->contrato',

                    'htmlOptions'=>array('style'=>'width:60px;'),

		),

                array(

                    'name'=>'cedula', 

                    'header'=>'Cedula',

                    'value'=>'$data->idRadicado->cedula',

                    'htmlOptions'=>array('style'=>'width:70px;'),

		),

                array(

                    'name'=>'nombre', 

                    'header'=>'Nombre del Contratista',

                    'value'=>'$data->idRadicado->nombre',

                    'htmlOptions'=>array('style'=>'width:270px;'),

		),

		array(

                    'name'=>'estado',

                    'htmlOptions'=>array('style'=>'width:70px;'),

                ), 

                array(

                    'name'=>'nombre_usuario', 

                    'header'=>'Nombre del Usuario a Cargo',

                    'value'=>'$data->idUsuario->nombre',

                    'htmlOptions'=>array('style'=>'width:190px;'),

		),    

                array(

                    'name'=>'fecha',

                    'htmlOptions'=>array('style'=>'width:170px;'),

                ), 

		array(

			'class'=>'CButtonColumn',

			'template'=>'{update}',

                ),

	),

        )); ?>

            </div>


<?php

} 

else

{

?>

        <div class="row">

                <?php echo $form->labelEx($model,'Asignar Usuario'); ?>

                <?php echo $form->dropDownList($model,'id_usuario',  Usuarios::getListUsuarios(),array('empty'=>'Seleccionar')); ?>

                <?php echo $form->error($model,'id_usuario'); ?>

        </div>

      

        <div class="span-3">

                <?php echo $form->labelEx($model,'id_radicado'); ?>

            <?php echo CHtml::textField($model->idRadicado->id_radicado,CHtml::encode($model->idRadicado->id_radicado),array('size'=>'10px','readonly'=>true)); ?>

		<?php echo $form->error($model,'id_radicado'); ?>                    

        </div> 

        <div class="span-3">

                <?php echo $form->labelEx($model,'vigencia'); ?>

            <?php echo CHtml::textField($model->idRadicado->vigencia,CHtml::encode($model->idRadicado->vigencia),array('size'=>'10px','readonly'=>true)); ?>

		<?php echo $form->error($model,'vigencia'); ?>                    

        </div> 

        

	<div class="row">

		<?php echo $form->labelEx($model,'contrato'); ?>

                <?php echo CHtml::textField($model->idRadicado->contrato,CHtml::encode($model->idRadicado->contrato),array('size'=>'10px','readonly'=>true)); ?>

		<?php echo $form->error($model,'contrato'); ?>

	</div>  

      <div class="row buttons">

        <?php echo CHtml::submitButton($model->isNewRecord ? 'Crear' : 'Actualizar'); ?>

        </div>

        <?php

}

?>

    

<?php $this->endWidget(); ?>

</div><!-- form -->



alguien q sepa

Hola Konan,

Te pongo un ejemplo de como filtro yo en mis cdgridview, este es el array de columns en el cgridview en la vista





'columns'=>array(

		'idciudad',

		'ciudadcod',

		'nombreciudad',


		array(

		'name'=>'departamento_iddepartamento',

		'value'=>'$data->departamentoIddepartamento->nombredepartamento',		

		'filter'=>$model->getMenuDepartamento(),		

		),


		'redespacho',




y este es el metodo




Public function getMenuDepartamento()

		{

			return CHtml::listData(Departamento::model()->findAll(),'iddepartamento','nombredepartamento');

		}



ojalá te sirva!