Paginazione con zii.widgets.CListView

[size="2"][color="#1c2837"]Non riesco a modificare il numero di elementi da far visualizzare su CListView per ogni pagina.[/color][/size]

[size="2"][color="#1c2837"]




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

'itemView'=>'_view',

'pager'=>4,    //come faccio a dire di visualizzare solo 5 record per pagina?

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

)); 

?>



[/color][/size]

[color="#1C2837"][size=“2”]Ho provato a guardare la documentazione inerente [/size][/color]pager property[color="#1C2837"][size=“2”] e anche l’esempio presente in [/size][/color]CPagination[color="#1C2837"][size=“2”],[/size][/color]

[size=“2”][color="#1c2837"]ma non sono riuscito a risolvere l’arcano.[/color][/size]

[size="2"][color="#1c2837"]Ho anche provato a modificare il controller così:[/color][/size]

[color="#1c2837"]

[size="2"]


[/size]

[size="2"]<?php[/size]

[size="2"]public function actionIndex()[/size]

[size="2"]{[/size]

[size="2"]$model=new CallRcms('search');[/size]

[size="2"]$model->unsetAttributes();  // clear any default values[/size]

[size="2"]if(isset($_GET['CallRcms'])) [/size][size=2]$model->attributes=$_GET['CallRcms'];[/size]

[size="2"]$dataProvider=new CActiveDataProvider('CallRcms');[/size]

[size="2"]$dataProvider->pagination->pageSize=4;[/size]

[size="2"]$this->render('index',array([/size][size=2]'dataProvider'=>$dataProvider,[/size][size="2"]'model'=>$model[/size][size=2]));[/size]

[size="2"]}[/size]

[size="2"]?>[/size]

[size="2"]

[/size]

[/color]

Questo dovrebbe funzionare:




		$dataProvider = new CActiveDataProvider('CallRcms', array(

				'pagination' => array(

					'pageSize' => 4,

				)

			));

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

			'dataProvider' => $dataProvider,

		));

pero nel view gli devi dare questo dataprovider, non il $model->search che hai messo nel primo essempio…


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

	'dataProvider'=>$dataProvider,

	'itemView'=>'_view',

	'viewData'=>array('uid'=>$uid),

)); ?>

Come mi hai suggerito tu funziona, ma non riesco ad inserire la logica di ricerca.

Vado a spiegare cosa sto tentando di costruire:

Quando crei la logica di crud da gii,

la parte di controller actionIndex() mostra la lista di record, mentre actionAdmin() mostra la griglia con tanto di Advanced Search.

Ho così provato ad inserire l’advanced search anche su actionIndex() in questo modo:





	public function actionIndex()

	{		

		//j

		$model=new CallRcms('search');

		$model->unsetAttributes();  // clear any default values

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

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

		//j

		

		

		$dataProvider=new CActiveDataProvider('CallRcms', array(

                                'pagination' => array(

                                        'pageSize' => 4,

                                )

                        ));

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

//			'dataProvider'=>$dataProvider,

			'model'=>$model, //j

		));

	}



e funziona, tranne per la paginazione che vorrei limitare a 4 record

se tolgo il rem da dataprovider e lo inserisco su model, funziona il limit a 4 record, ma non la ricerca avanzata




			'dataProvider'=>$dataProvider,

//			'model'=>$model, //j



Nella view inerente index.php ho aggiunto il form di ricerca


<?php echo CHtml::link('Ricerca Avanzata','#',array('class'=>'search-button')); ?>

<div class="search-form" >

<?php $this->renderPartial('_search',array(

	'model'=>$model,

)); ?>

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

Allora… se guardi il codice… la paginazione si configura nel dataprovider…

Se usi il filter… allora il dataprovider e nel metodo $model->search()… e li che si fa il filtro e dove si crea il CActiveDataprovider… devi soltanto configurare la paginazione li :D

Ci ho messo 2 giorni a capire il tuo suggerimento, ma alla fine ce l’ho fatta…

Sono andato nel model e ho individuato la funzione





	public function search()



dove ho aggiunto:


return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

			'pagination'=>array(

	        	'pageSize'=>4,

			),

		));

Adesso mi è più chiaro anche consultare la documentazione inerente

http://www.yiiframework.com/doc/api/1.1/CActiveDataProvider

dove posso toccare anche le altre properties

Grazie

Bravo…

vai cosi che vai alla grande…