[Yii Framework] Membuat Pagination dengan CLinkPager

Pagination, kalo kita make CListView atau CGridView tentunya kita ga perlu susah-susah mikirin gimana caranya membuat pagination karena emang hal itu sudah tersedia langsung oleh CLIstView ataupun CGridView. Tapi ada beberapa kondisi dimana biasanya kita tidak menggunakan control tersebut, tetapi ingin membuat pagination.. yah, Yii sendiri sudah menyediakan cara untuk mempermudah kita melakukan hal tersebut.. yaitu menggunakan CLinkPager..

Bagaimana cara menggunakannya?? okeh, mari kita bahas..

Misal anda menggunakan sql query untuk menampilkan data seperti berikut :

 $sql='SELECT * FROM namaTabel';
 
 $dataProvider=new CSqlDataProvider($sql,array(
   'keyField' => 'id',
   'totalItemCount'=>namaTabel::model()->count(),
   'pagination'=>array(
       'pageSize'=>8,
    ),
 ));

Setelah itu mari kita buat pagination nya seperti berikut :

 $page = new CPagination(namaTabel::model()->count());
 $page->pageSize = 8;

Penjelasan :

  • totalItemCount merupakan jumlah nilai yang akan ditampilkan, jadi kalo pun query anda menghasilkan 100 nilai, tapi anda set cuma 30 nilai maka yang akan nampil cuma 30 nilai.
  • pageSize baik di $dataProvider maupun di pagination digunkan untuk mengeset total nilai yang akan di tampilkan perhalaman.

Ket : pastikan Cpagination memiliki nilai yang sama dengan ‘totalItemCount’ yang terdapat pada $dataProvider. Dan pastikan juga pageSize yang ada pada pagination sama dengan pageSize yang ada pada $dataProvider.

Sedangkan untuk menampilkannya, berikut caranya :

<?php
   foreach ($dataProvider->data as $ia=>$iia)
   {
?>
   Nama Attribut 1 : <?php echo $iia['attribute1'] ?>
   Nama Attribut 2 : <?php echo $iia['attribute2'] ?>
   Nama Attribut 3 : <?php echo $iia['attribute3'] ?>
<?php 
  }
  $this->widget('CLinkPager',array('pages'=>$page));
?>

Yah, jika apa yang anda lakukan telah berhasil, maka data akan ditampilkan sesuai dengan paginationnya..

Selesai.. Selamat mencoba..

Semoga membantu..😀

8 Responses to [Yii Framework] Membuat Pagination dengan CLinkPager

  1. santo says:

    Kalau mau menambahkan ajax di dalam CLinkPager bagaimana gan ?

  2. saya lupa gan, tapi itu pake class sendiri yang exteni link pager nya.. di forum yii ada kok dulu saya dapet gan..

  3. mrkoeh says:

    klo kita pengen nampilin data sesuai keinginan kita gmna gan??
    misal ada dropdown list di paging untuk jumlah data yang akan di tampilkan, jdi dinamis gtu gan???

  4. mksd nya nampilin data yang gmana gan?

  5. ANGGIT says:

    mas kok error napa ya?
    errornya gini ‘Kategori and its behaviors do not have a method or closure named “model”.’
    kayake pas di sini nya..
    SELECT *
    43 FROM kategori
    44 ‘;
    45 $dataProvider=new CSqlDataProvider($sql,array(
    46 ‘keyField’ => ‘id’,
    47 ‘totalItemCount’=>kategori::model()->count(),
    48 ‘pagination’=>array(‘pageSize’=>8,),
    49 )); $page = new CPagination(kategori::data()->count());
    50 $page->pageSize = 8;
    51
    52
    MOHOHN BANTUANYA MAS.. T_T

  6. itu kategori nya coba di ganti pake huruf besar mas “K” nya..

  7. danus says:

    itu nya disimpan dimana ?? di controller apa di view

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: