Cgridview Export Pdf Excel Csv

Ciao a tutti, dopo aver sgooglato per un paio di giorni, non sono riuscito a trovare una soluzione al mio problema.

Vorrei esportare una cgridview (con i dati già filtrati) su PDF o su qualsiasi altro formato.

Tutti i topic che ho letto sono rimasti a metà senza soluzione.

Ho capito che l’obiettivo è quello di utilizzare lo stesso dataprovider utilizzato dalla cgridview, quindi nella admin (generata da gii) del mio model ho aggiunto un button


echo CHtml::button('Scarica in PDF', array('submit' => array('turni/admin','PDF'=> '1'))); 

nel controller




public function actionAdmin()

{

                $model=new Turni('search');

		$model->unsetAttributes();  

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

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

                

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

                {


                    $dataProvider= $model->search();

                    $dataProvider->pagination= false; 


                    $data= $dataProvider->getData(); 

                    

                     foreach ($data as $model)

                     {

                         

                        ..... esportare i dati...


                     }     

                    

                }


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

			'model'=>$model,

		));

	}




Il problema è che questo




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

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



non viene eseguito quando clicco il pulsante per esportare in pdf, quindi


$model->search();

mi rende tutte i record associati senza filtrare nulla.

Potete darmi una mano? sicuramente sto facendo qualche errore demenziale da qualche parte

grazie

per inviarti i vari filtri hai due strade:

  • bottone ajax con relativa funzione js che fa il submit e recupera i valori via js dei filtri vari

  • mettere la gridview in un form, e con il tasto pdf fai il submit con tutti i campi filtro popolati.