Yii Framework Forum: filter - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

filter filtro su dataProvider Rate Topic: -----

#1 User is offline   ilovephp 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 128
  • Joined: 04-February 11
  • Location:treviso

Posted 08 June 2011 - 08:30 AM

Ciao a tutti,

Vorrei far funzionare un filtro su una zii.widgets.grid.CGridView ma non funziona.

la mia view index è:
<?php
$this->breadcrumbs=array(
	'Incaricatis',
);
$model=new Incaricati('search');
$this->menu=array(
	array('label'=>'Crea Incaricati', 'url'=>array('create')),
	array('label'=>'Gestisci Incaricati', 'url'=>array('admin')),
);
?>
<h1>Incaricati</h1>
<hr>
<?php 
 $this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'incaricati-grid',
#    'dataProvider'=>$dataProvider,
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
	#	'id_incaricati',
 array(            // display 'create_time' using an expression
           
     	'header'=>'Responsabile',
         'value'=>'$data->idResponsabili0->cognome', 
        ),	
		'nome',
		'cognome',
		'idUfficio0.ufficio',
		#'idTipodatitrattati0.dati',
		
		array(
		    'class'=>'CLinkColumn',
			'header'=>'Esporta <br/>PDF',
			'imageUrl'=>'images/icona_pdf.gif',
		    'labelExpression'=>'$data->cognome',
		    'urlExpression'=>'"index.php?r=incaricati/export_pdf&id=".$data->id_incaricati',
		),	

	),
)); ?>


il mio dataProvider viene calcolato nel controller come segue:
	public function actionIndex()
	{
		
		$dataProvider=new CActiveDataProvider('Incaricati');
		#var_dump($dataProvider->getData());
		$this->render('index',array(
			'dataProvider'=>$dataProvider,
		));
	}


nel model c'è il mio search:
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id_incaricati',$this->id_incaricati);
		$criteria->compare('nome',$this->nome,true);
		$criteria->compare('cognome',$this->cognome,true);
		$criteria->compare('id_ufficio',$this->id_ufficio);
		$criteria->compare('id_tipodatitrattati',$this->id_tipodatitrattati);
		$criteria->compare('id_responsabili',$this->id_responsabili);
		$criteria->compare('id_incarichi',$this->id_incarichi);

		return new CActiveDataProvider(get_class($this), array(
			'criteria'=>$criteria,
		));
	}	  


help me. thanks!!! :unsure:
la non conoscenza è una brutta bestia
0

#2 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,987
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 08 June 2011 - 09:53 AM

Hai provato ad impostare il criteri del data provider che passi al widget?
0

#3 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 09 June 2011 - 01:15 AM

Devi impostare filter nella configurazione della colonna del dataprovider. Dai una occhiata a questo commento (e anche all'intero articolo)
0

#4 User is offline   ilovephp 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 128
  • Joined: 04-February 11
  • Location:treviso

Posted 09 June 2011 - 05:58 AM

:lol: [RISOLTO]

dal view ho tolto
$model=new Incaricati('search');



e ho modificato il controller come segue :
	public function actionIndex()
	{
		 $model=new Incaricati('search');
		 $model->unsetAttributes();  // clear any default values
		 if(isset($_GET['Incaricati']))
			$model->attributes=$_GET['Incaricati'];

			$this->render('index',array(
			'model'=>$model,
			));


#		$dataProvider=new CActiveDataProvider('Incaricati');
#		$this->render('index',array('dataProvider'=>$dataProvider,));
	}


tutto funziona correttamente.
:D
la non conoscenza è una brutta bestia
0

#5 User is offline   ilovephp 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 128
  • Joined: 04-February 11
  • Location:treviso

Posted 09 June 2011 - 06:10 AM

:mellow:

domanda da un milione di lire?

ma perchè se aggiungo una bella

echo (" incaricati = ".$_GET['Incaricati']);


nel controller non mi visualizza nulla ?

	public function actionIndex()
	{
		 $model=new Incaricati('search');
		 $model->unsetAttributes();  // clear any default values
		 if(isset($_GET['Incaricati']))
		 {
			$model->attributes=$_GET['Incaricati'];
			var_dump($GLOBALS);
			echo (" incaricati = ".$_GET['Incaricati']);
		 } 
		
			$this->render('index',array(
			'model'=>$model,
			));


#		$dataProvider=new CActiveDataProvider('Incaricati');
#		$this->render('index',array('dataProvider'=>$dataProvider,));
	}


???
la non conoscenza è una brutta bestia
0

#6 User is offline   zaccaria 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 2,232
  • Joined: 04-October 09
  • Location:Moscow

Posted 14 June 2011 - 04:35 AM

I parametri in get vengono passati dalla ajax request.

Se osservi la risposta ai refresh ajax con firebug, troverai la tua echo.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users