2011-12-08 14 views
7

Sono nuovo di Yii. Voglio implementare l'impaginazione personalizzata. Voglio cambiare l'aspetto del cercapersone. Come cambio le etichette dei collegamenti del cercapersone?Come posso personalizzare le etichette per il cercapersone in Yii?

Voglio i link per apparire in questo modo:

<< < 1 2 3 4 > >> 

al posto del loro aspetto di default, che è come questo:

[first] [previous] 1 2 3 4 [next] [last] 

Sto usando CListView per visualizzare i dati, che ho configurare in questo modo:

$this->widget('zii.widgets.CListView', array(
      'dataProvider' => $categoryProjects, 
      'itemView' => '_itemDetailsView',   
      'ajaxUpdate'=>false, 
     )); 

Qualcuno può dirmi come posso star t con esso? Ho visto alcuni post ma non sono riuscito a ottenere informazioni corrette.

Grazie in anticipo.

risposta

12

È necessario impostare la proprietà pager di CListView. Per impostazione predefinita, questo è un CLinkPager; non c'è bisogno di cambiare la situazione (questo componente ha proprie esigenze coperti), ma è necessario configurarlo:

$this->widget('zii.widgets.CListView', array(
      'dataProvider' => $categoryProjects, 
      'itemView'  => '_itemDetailsView', 
      'ajaxUpdate' => false, 
      'pager'  => array(
           'class'   => 'CLinkPager', 
           'firstPageLabel' => '<<', 
           'prevPageLabel' => '<', 
           'nextPageLabel' => '>', 
           'lastPageLabel' => '>>', 
          ), 
     )); 

Aggiornamento: Se si vuole "cuocere in" la configurazione personalizzata sopra per tutta la lista viste nella tua applicazione, devi creare un nuovo componente CustomListView derivante da CListView. Quindi è necessario questa classe:

Yii::import('zii.widgets.CListView'); 

class CustomListView extends CListView { 
    public function init() { 
     parent::init(); 

     $this->pager = array( 
          'class'   => 'CLinkPager', 
          'firstPageLabel' => '<<', 
          'prevPageLabel' => '<', 
          'nextPageLabel' => '>', 
          'lastPageLabel' => '>>', 
         ); 
    } 
} 

Dopo compreso questo, si può semplicemente utilizzare CustomListView come widget di lista, invece di zii.widgets.CListView.

+0

Grazie Jon per la rapida risposta. C'è un modo per implementarlo in un singolo file e verrà applicato automaticamente a tutti i file. Ho usato questo cListView in molti file. E anche dove posso cambiare il CSS per i numeri di pagina? –

+0

@RSK: vedere [questa discussione] (http://www.yiiframework.com/forum/index.php?/topic/26055-change-the-general-pager-css-for-all-application/) per il CSS. A breve aggiornerò la risposta per la tua altra domanda. – Jon

+0

Come posso limitare i numeri di pagina a 5? Le impostazioni predefinite mostrano 10 numeri di pagina. Ho provato questo pubblico $ maxButtonCount = 5; ma questo non funziona per me. Eventuali suggerimenti? Anche io voglio cambiare un po 'il layout in modo che mi piaccia questo <1 ... 8 9 10 11 12 .... 30> perché mostra 10 pagine .. –

Problemi correlati