2011-12-08 14 views
7

Tôi mới đến Yii. Tôi muốn triển khai phân trang tùy chỉnh. Tôi muốn thay đổi diện mạo của máy nhắn tin. Làm cách nào để thay đổi nhãn của các liên kết của máy nhắn tin?Làm cách nào để tùy chỉnh nhãn cho máy nhắn tin trong Yii?

Tôi muốn các liên kết xuất hiện như vậy:

<< < 1 2 3 4 > >> 

thay vì xuất hiện mặc định của họ, đó là như thế này:

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

Tôi đang sử dụng CListView để hiển thị dữ liệu, mà tôi có thiết lập như sau:

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

Bất cứ ai có thể vui lòng cho tôi biết cách tôi gắn dấu sao t với nó? Tôi đã nhìn thấy một số bài đăng nhưng không thể nhận được thông tin chính xác.

Xin cảm ơn trước.

Trả lời

12

Bạn cần đặt thuộc tính pager của CListView. Theo mặc định, đây là CLinkPager; bạn không cần phải thay đổi điều đó (phần này có nhu cầu của bạn được bảo hiểm), nhưng bạn cần phải cấu hình nó:

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

Cập nhật: Nếu bạn muốn "nướng trong" cấu hình tùy chỉnh trên cho tất cả các danh sách số lượt xem trong ứng dụng của bạn, bạn phải tạo thành phần CustomListView mới xuất phát từ CListView. Vì vậy, bạn cần lớp này:

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

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

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

Sau đó có này, bạn chỉ có thể sử dụng CustomListView như phụ tùng danh sách của bạn thay vì zii.widgets.CListView.

+0

Cảm ơn Jon bạn đã trả lời nhanh chóng. Có cách nào để thực hiện điều này trong một tập tin duy nhất và nó sẽ được áp dụng tự động cho tất cả các tập tin. Tôi đã sử dụng cListView này trong nhiều tệp. Và tôi cũng có thể thay đổi CSS cho số trang ở đâu? –

+0

@RSK: Vui lòng xem [thảo luận này] (http://www.yiiframework.com/forum/index.php?/topic/26055-change-the-general-pager-css-for-all-application/) cho CSS. Tôi sẽ sớm cập nhật câu trả lời cho câu hỏi khác của bạn. – Jon

+0

Làm cách nào để giới hạn số trang đến 5? Cài đặt mặc định hiển thị 10 số trang. Tôi đã thử công khai $ maxButtonCount = 5; nhưng điều này không hiệu quả với tôi. Bất kỳ đề xuất? Ngoài ra tôi muốn thay đổi bố trí một chút để như thế này <1 ... 8 9 10 11 12 .... 30> bởi vì nó được hiển thị 10 trang .. –