Proprietà delle colonne di zii.widgets.grid.CGridView

Ciao a tutti,

Volevo deliziarvi con del codice che ho avuto la possibilità di vedere questa sera.

Se nel vostro grid ci sono troppe colonne o informazioni potete ragrupparne alcune. Nel mio grid avevo due colonne: nome e cognome, e poi avevo una colonna link che faceva aprire una pagina i cui dati erano in relazione con id.

nel view ho sostituito le colonne nome e cognome con:




        array(

            'header'=>'Nome',

        	'name'=>'cognome',

        	'type'=>'raw',

	        'value'=>array($this,'linkanagrafica'),

        ),



nel controller in questione ho aggiunto questa funzione




	public function linkanagrafica($data,$row)

	{ 

		$url=Yii::app()->request->baseUrl;

		return CHtml::link(CHtml::encode($data->cognome) .' ' . CHtml::encode($data->nome),$url."/index.php?r=anagrafica/view&id=".$data->id_anagrafica);

	}



Il risultato è stato il raggruppamento di nome e cognome. Inoltre la colonna ‘Nome’ mi ha visualizzato dei link che mi hanno permesso di aprire un’altra pagina.

:lol: :lol:

Grandioso !!! Io m’ero fatto una funzione locale (nella view) però questo metodo sembrerebbe + efficace, solo una domanda:

chi garantisce alla [color="#000080"]function linkanagrafica[/color] che come parametri gli arriveranno [color="#000080"]$data e $row[/color] ? Non ho colto … ::)

tnx

p.s.

e perchè il 2^ parametro ($row) non viene usato?

Te lo garantisce Yii - http://www.yiiframework.com/doc/api/1.1/CDataColumn#value-detail

Per magiori detagli bisogna guardare direttamente il codice perche alcune opzioni avanzate non sono documentate (per esempio l’ordine dei parametri) - http://code.google.com/p/yii/source/browse/trunk/framework/zii/widgets/grid/CDataColumn.php#139

Ciao paskuale sono riuscito a capire cio’ da questo riferimento e per oggi è stata una conquista.

la spiegazione in inglese è questa:

//called on rendering a grid row

//the first column

//the params are $data (=the current rowdata) and $row (the row index)

ovvero dati e indice

Caro mdomba ora ho capito anche perchè se $Value == null visualizza nullDisplay.

è semplicemente grandioso.

tra una decina di anni saremo bravi come te. ;D

Se usi CHtml::link lascia che sia yii a generare gli url:


        public function linkanagrafica($data,$row)

        { 

                return CHtml::link(CHtml::encode($data->cognome.' ' .$data->nome), array('anagrafica/view', 'id'==>$data->id_anagrafica);

        }

Dipende da quanto userete Yii…

Io quando ho scelto Yii (2 anni fa) non ne sappevo niente del OO PHP… pero a quel tempo ho deciso di impararlo e cominciare a fare del codice piu qualitativo… mi sono serviti due mesi per capire i oggeti nel PHP… a quel punto non toccavo Yii ancora, leggevo i post nel forum aspetavo che qualcuno scrivesse le soluzzioni e poi cercavo di capirle… pian pianino ho cominciato ad usare Yii per tutto quelo che dovevo fare in PHP… sicome lavoro in una ditta come unico programatore e svilupo web applicazioni per le esigenze di essa… avevo / ho constantemente nuovi progetti da fare e casi da risolvere… ed e perquesto che a breve tempo ho fatto tanta esperienza… e il resto e storia :D